2010-04-01 45 views
0

是否有可能对flv视频进行散列以使其本身无法播放,并且格式无法通过软件识别,但我实际上可以对它们进行散列处理并播放到我的as3脚本中?AS3和哈希

这将在CD上实现,所以我不能使用服务器脚本。

+2

但是,请记住,swf文件可以反编译显示密钥的散列。 – ALOToverflow 2010-04-01 13:53:54

回答

1

不,你不能。不与flv。但是,您可以将视频嵌入swf并加密SWF。但请注意,使用强大的视频数据加密可能会导致性能问题。无论如何:你可以将load the binary data转换成ByteArray,执行解密然后load the SWF from the ByteArray

+0

谢谢我决定不加密,此刻毫无用处 – gok 2010-04-02 11:00:50

0

我假设你的意思是你想在应用程序中“实时”执行此操作。

如果是这样,有两个问题与:

  1. ,你将不得不解密软件自定义的视频,所以它要运行很慢。取决于最终用户的计算机,这是不可预测的。

  2. 正如前面提到的ALOToverflow,你的哈希算法的关键在于你的.swf,它可以被简单地反编译来揭示它。

假设你正在使用AS3与Adobe AIR你可能运用户以“破” FLV的,然后简单地修理他们试图发挥他们回来。

根据视频的分辨率和长度,这可能是一个可行的选择。

(您想使用FileStream类此。)http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/flash/filesystem/FileStream.html

FLV的全部以一个标准的头,所以你可以通过只打破了头,后来又对其进行修复开始。 (我说的是用二进制代码顺带弄脏和肮脏) http://en.wikipedia.org/wiki/Flash_Video

0

我创建了一个类似的项目一次。 这就是我所做的:

我以某种方式加密视频,不管怎么样,把它们放到一个单一的大文件。 批量数据文件。然后,我从浏览器运行swf,而不是从浏览器运行,而是从JAVA应用程序运行它,它可以比Adobe swf解释器更快地解密批量视频文件。 在Java应用程序中,我将解密后的视频作为参数传递给swf。 使用Java是很好的,因为所有的客户端都可以打开它。 Mac用户,Windows用户,任何人。可以用C++来完成,但这会限制你的用户基数。

体面的知识讲座

中任何人都可以反向工程的加密过程,但它是更难获得从Java编译软件加密,不是从AS3瑞士法郎。

使用Blowfish,Twofish或DES。不要使用RSA,它很慢。 您必须使Java应用程序非常快速且简单,因此建议不要使用外部加密库。