通过ByteArray加密SWF或图像
不知道有没有人发过类似的文章,希望能听到大家的想法
假如你有一个SWF或者图像文件,别人即使下载下来了,也不能获得其中的内容,那么ByteArray或许能帮一下忙。
原理:
假设要加密的文件是a.swf,首先通过AS3修改a.swf的ByteArray,然后发送到PHP(当然也可以是其他语言),在后台生成一个新的b.swf,这就是加密后的文件,别人如果下载下来打开,是无法观看的。如果想通过破解工具破解,那也是徒劳(因为这已经不是一个swf了)。
然后我们就可以在AS3里解析这个b.swf,将它还原成a.swf,这是通过URLLoader+Loader完成的,还是来看看代码吧
var urlLoader:URLLoader = new URLLoader();urlLoader.dataFormat = URLLoaderDataFormat.BINARY;urlLoader.addEventListener(Event.COMPLETE,onLoaded);urlLoader.load(new URLRequest('test.swf'));//加密后的swf文件function onLoaded(evt){ var ba:ByteArray = urlLoader.data; var bytes:ByteArray = new ByteArray(); //trace(ba.length); //-------------------解密 for(var i=0;i<ba.length;i++) { bytes.writeByte(ba[i] - 13); } //-------------------End var loader:Loader = new Loader(); loader.contentLoaderInfo.addEventListener(Event.COMPLETE,onBytesLoaded); loader.loadBytes(bytes);}function onBytesLoaded(evt){ addChild(evt.target.content);}? 1 楼 弃天笑 2011-04-25 这样加密会不会造成字节的位的丢失,从而还原的时候会出错呢?