基于ByteArray的swf文件加解密

ByteArray的加密原理是,先用:URLLoader把swf文件加载进来,得到 URLLoader的data属性(ByteArray类型),然后把这个ByteArray数组进行分解,得到一个8位的字节流。然后对这个字节流进行位移(也就是加密的数字,文章中用的是+13),最后得到一个新的字节流数组,进行保存。
    解密的方法也是如此:先把文件导入进来,得到ByteArray,分解成8位的字节流,(解密方法就是对字节流进行反位移,也就是加密是+13,解密就是-13),这样生成新的字节流数组就是可以使用的swf文件了。
    并且使用字符串作为密文。把字符串转为一个ASCII数组(如”abc”,对应的ASCII数组为 97,98,99),然后与文件的字节流数组进行循环加密。如一个1K的swf,那么它有1024个字节流,第一个字节流与97进行位移,第二个与98位移,第三个与99,第四个又循环与97加。这样生成的加密文件就无穷多了。解密的方法也只有拿到密文才能进行解密。
    而分段加密就是在ByteArray全部加密的基础上,舍弃全部加密,只是对ByteArray中别定位置的字节进行加密,比如1001-2000,3001-4000等等。具体的方法是使用2个for循环,外层循环定义的是你想隔多少字节进行一次加密,而内层循环定义的是你想对多少字节进行加密。具体代码如下:
for(var i:int=0;i<byteLen;i += INTERVAL){
 for(var j:int=i;j<i+ENCRYPTCODE;j++,index++){
  if(index >= len){
   index = 0;
  }
  if(j>=byteLen){
   break;
  }
  //具体的对字节加密的操作
 }
}
解密算法和加密算法类似。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值