关闭

基于ByteArray的swf文件加解密

标签: 加密解密算法
600人阅读 评论(0) 收藏 举报
分类:
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;
  }
  //具体的对字节加密的操作
 }
}
解密算法和加密算法类似。
0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:6942次
    • 积分:91
    • 等级:
    • 排名:千里之外
    • 原创:2篇
    • 转载:2篇
    • 译文:0篇
    • 评论:1条
    文章分类
    文章存档
    最新评论