private var loader:URLLoader;
...
private function init():void
{
loader = new URLLoader;
req=URLRequest = new URLRequest("1.txt");
  //req.dataFormat = URLLoaderDataFormat.BINARY;
loader.load(req);
loader.addEventListener(Event.COMPLETE,oncomlete);
}
private function save(bt:ByteArray):void
{
  var fr:FileReference = new fileReference;
  fr.save(bt,"2.txt");
}
private function oncomplete(e:Event):void
{
  if(true)
  {
   var str:String=loader.data;
   trace("src///////");
   trace(str);
  str=secret(str);
   var bt:ByteArray = new ByteArray;
    bt.writeUTFBytes(str);
    bt.compress(); 
  }   
  else
  {
     
    var bt:ByteArray=loader.data;
      bt.uncompress();
     str=bt.readUTFButes(bt.length);
   str=unsecret(str);
    trace("unsecret//////////////\n"+str)
  }
} private var add_key:Array=[800,650,400,525,100,250]//间距大于122(z的unicode值)
private var range:Array=[65,91,97,123]//65,70,75,91,97,100,123
private var xor_key:Array=[0xaa,0xbb]
private var pos_key:Array=[8,4]// private function secret(src:String):String
{
var res:String="";
var i:int,len:int,unicode:int;
len=src.length
for(i=0;i<len;i++)
{
unicode=str.charCodeAt(i);
var idx=index(unicode);
res+=String.fromCharCode(xor(add_key[idx]+unicode+random(i)))
}
res=pos(res);
return res;
}
i
private function xor(v:int):int
{
var i:int,len:int;
len=xor_key.length
for(i=0;i<len;i++)
{
v^=xor_key[i];
}
return v;
} private function random(i:int):int
{
swicth(i%4)
{
case 0:
if(i%9==0)
return((1-Math.sin(i))*(i%100)>>0);
else
return((1-Math.sin(i))*(i%200)>>0);
case 1:
return ((1-Math.cos(i))*(i%300)>>0);
case 2:
return ((1-Math.cos(i)*Math.sin(i))*(i%400)>>0);
case 3
if(i%3==0)
return((1-Math.sin(i)*Math.cos(i)*Math.cos(i))*(i%500)>>0);
else
return((1-Math.sin(i)*Math.cos(i)*Math.cos(i))*(i%600)>>0);
}
return 1;
} private function index(u:int):int
{
if(u>64&&u<91||u>96&&u<123)
{
var i:int,len:int;
len=range.length-1;
for(i=0;i<len;i++)
{
if(u>=range[i]&&u<range[i+1])
break;
}
return i
}
else
return 5
} private function index2(u:int):int
{
var i:int,len:int;
len=add_key.length-1;
for(i=0;i<len;i++)
{
if(u>=add_key[i]&&u<=add_key[i]+123)
break;
}
return u-add_key[i];
} private function unsecret(src:String):String
{
src=unpos(src);
var res:String="";
var i:int,len:int;
var u:int;
len=src.length;
for(i=0;i<len;i++)
{
u=xor(src.charCodeAt(i)-random(i));
u=index2(u);
res+=String.formCharCode(u);
}
return res;
} private function pos(src:String):String
{
  var i,j,k,len,len1,n;
  var res:String;
  len = pos_key.length;
  len1=src.length;
  for(i,len)
  {
    src=res||src;
    res="";
    for(j,pos_key[i])
    {
      n=len1%pos_key[i];
      if(n>0)
        n=pos_key[i]-n;
       while(n--)
        src+='#';
        len1=src.length;
        k=j;
        while(k<len1)
        {
          res+=src.charAt(k);
          k+=pos_key[i]
        }
    }   }
return res;
} private function unpos(src:String):String
{
 
 var i,j,k,len,len1,n;
  var res:String;
  len = pos_key.length;
  len1=src.length;
  for(i,len)
  {
    dis=Math.ceil(len1/pos_key[i]);
    src=res||src;
    res="";
    for(j,dis)
    {
      k=j;
      while(k<len1)
      {
        res+=src.charAt(k)
        k+=dis;
      }
    }
  }
return res;
}
[65,70,80,91,97,110,123]

as3 代码加解密的更多相关文章

  1. Java 使用AES/CBC/PKCS7Padding 加解密字符串

    介于java 不支持PKCS7Padding,只支持PKCS5Padding 但是PKCS7Padding 和 PKCS5Padding 没有什么区别要实现在java端用PKCS7Padding填充, ...

  2. web.config/app.config敏感数据加/解密的二种方法

    一 建立虚拟目录  http://localhost/EncryptWebConfig,并添加web.config,其中包含数据库连接字符串: <connectionStrings>    ...

  3. Rsa加解密Java、C#、php通用代码 密钥转换工具

    之前发了一篇"TripleDes的加解密Java.C#.php通用代码",后面又有项目用到了Rsa加解密,还是在不同系统之间进行交互,Rsa在不同语言的密钥格式不一样,所以过程中主 ...

  4. PHP RSA加解密详解(附代码)

    前言:RSA加密一般用在涉及到重要数据时所使用的加密算法,比如用户的账户密码传输,订单的相关数据传输等. 加密方式说明:公钥加密,私钥解密.也可以  私钥加密,公钥解密 一.RSA简介 RSA公钥加密 ...

  5. 彻底告别加解密模块代码拷贝-JCE核心Cpiher详解

    前提 javax.crypto.Cipher,翻译为密码,其实叫做密码器更加合适.Cipher是JCA(Java Cryptographic Extension,Java加密扩展)的核心,提供基于多种 ...

  6. 惊呆了!不改一行 Java 代码竟然就能轻松解决敏感信息加解密|原创

    前言 出于安全考虑,现需要将数据库的中敏感信息加密存储到数据库中,但是正常业务交互还是需要使用明文数据,所以查询返回我们还需要经过相应的解密才能返回给调用方. ps:日常开发中,我们要有一定的安全意识 ...

  7. C/C++ 对代码节的动态加解密

    加壳的原理就是加密或者压缩程序中的已有资源,然后当程序执行后外壳将模拟PE加载器对EXE中的区块进行动态装入,下面我们来自己实现一个简单的区块加解密程序,来让大家学习了解一下壳的基本运作原理. 本次使 ...

  8. 数据採集器服务——Socket(今天才发现AES加解密代码跟贴的时候不一样,貌似乱码,不知什么情况)

    近期刚做的一个项目.关于 Socket TCP 通信. 需求方提供了一个 ARM 机器,及数据採集器,须要我做一个服务端与数据採集器进行交互. 目的: 数据採集器:定时将读取到的数据发送到服务端. 服 ...

  9. SWF加解密资源索引之加密混淆篇【转】

    ============================ SWF加解密资源索引之加密混淆篇 ============================ [心得] swf加密混淆器(带源码) http:/ ...

随机推荐

  1. javascript事件之:谈谈自定义事件(转)

    http://www.cnblogs.com/pfzeng/p/4162951.html 对于JavaScript自定义事件,印象最深刻的是用jQuery在做图片懒加载的时候.给需要懒加载的图片定义一 ...

  2. OpenCV学习笔记(二)——OpenCV环境变量配置

    1.  假定电脑上已经安装了VS2010程序,若没有,首先安装vs2010. 下载OpenCV,下载的文件名为"OpenCV-2.3.1-win-superpack". 2.  解 ...

  3. VS后台程序无法调用App_Code里的公共类解决方案

    在Web应用程序中不能通过右键项目-〉”添加“-〉”添加ASP.NET文件夹“方式添加 .因为Web应用程序中App_Code就不存在 .不过可以通过手动的方式创建,添加一个文件夹命名为App_Cod ...

  4. swift_初始化器的使用

    //: Playground - noun: a place where people can play import Cocoa ***************************结构体与Cla ...

  5. SVM原理与实践

    SVM迅速发展和完善,在解决小样本.非线性及高维模式识别问题中表现出许多特有的优势,并能够推广应用到函数拟合等其他机器学习问题中.从此迅速的发展起来,已经在许多领域(生物信息学,文本和手写识别等)都取 ...

  6. Ridit分析

    对于有序分类资料,由于指标存在等级顺序,因此不能使用卡方检验,除了使用秩和检验之外,ridit检验也是分析有序分类资料的常用方法,属于非参数检验. ridit检验的基本做法是将一组有序分组资料转换成一 ...

  7. html5 audio的语法以及属性和方法

    使用语法<audio src="song.mp3" controls="controls" loop="loop" autoplay= ...

  8. 十天精通CSS3学习笔记 part1

    http://www.imooc.com/learn/33 第1章 初识CSS3 什么是CSS3? CSS3是CSS2的升级版本,3只是版本号,它在CSS2.1的基础上增加了很多强大的新功能. 目前主 ...

  9. css3 rem的用法

    rem这是个低调的css单位,近一两年开始崭露头角,有许多同学对rem的评价不一,有的在尝试使用,有的在使用过程中遇到坑就弃用了.但是我对rem综合评价是用来做web app它绝对是最合适的人选之一. ...

  10. 判断iframe是否加载完成的完美方法

    var iframe = document.createElement("iframe"); iframe.src = "http://www.jb51.net" ...