是否有可能对flv视频进行哈希处理,因此它本身无法播放,并且该格式无法被软件识别,但我实际上可以对它们进行反散列并在我的as3脚本中播放?
这将在CD上实现,因此我无法使用服务器脚本。
答案 0 :(得分:1)
无论如何:你可以load the binary data进入ByteArray,执行解密然后load the SWF from the ByteArray。
答案 1 :(得分:0)
我假设你的意思是你想在应用程序中“实时”这样做。
如果是这样,那有两个问题:
您必须在软件中解密自定义视频,因此其运行速度非常慢。并且取决于最终用户的计算机,这是不可预测的。
正如前面提到的ALOToverflow,哈希算法的关键在于你的.swf,可以简单地反编译显示它。
假设您在adobe AIR中使用as3,您可能会向用户发送“已损坏”的flv,然后在尝试播放它们之前先修复它们。
根据视频的分辨率和长度,这可能是一种可行的选择。
(你可以使用FileStream类。)http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/flash/filesystem/FileStream.html
FLV都是以标准标题开头的,所以你可以先断开标题,然后再修复它。 (我正在谈论用二进制代码btw来解决问题。) http://en.wikipedia.org/wiki/Flash_Video
答案 2 :(得分:0)
我创建了一个类似的项目。 这就是我所做的:
我以某种方式对视频进行加密,不会如何处理,将它们放入一个单独的大文件中。 批量数据文件。然后我运行swf,而不是从浏览器运行它,而是从JAVA应用程序运行它,它可以比Adobe swf解释器更快地解密批量视频文件。 在Java应用程序中,我将解密的视频作为参数传递给swf。 使用Java是很好的,因为所有客户端都可以打开它。 Mac用户,Windows用户,任何人。可以使用C ++来实现,但这会限制您的用户群。
当然,任何拥有良好知识的人都可以对加密过程进行逆向工程,但是从Java编译的软件中获取加密比从AS3 swf获取加密更难。
使用Blowfish,Twofish或DES。不要使用RSA,它很慢。 您必须使Java应用程序非常快速和简单,因此建议不要使用外部加密库。