·您当前的位置:首页 > 技术教程 > AS2与AS3技术 >

[AS3]as3解密加密算法运用as3crypto类

时间:2013-10-31 09:08cuplayer.com
代码实例参考:flex客户端与java服务端通信,要互相解密加密,客户端用的as3Crypto进行解密加密

代码实例参考:flex客户端与java服务端通信,要互相解密加密,客户端用的as3Crypto进行解密加密。代码参考:

as3crypto:一个as3的关于加解密的开源项目
http://code.google.com/p/as3crypto/

  1. <?xml version="1.0" encoding="utf-8"?> 
  2. <s:Application xmlns:fx="http://ns.adobe.com/mxml/2009"  
  3.                            xmlns:s="library://ns.adobe.com/flex/spark"  
  4.                            xmlns:mx="library://ns.adobe.com/flex/mx" minWidth="955" minHeight="600"> 
  5.         <fx:Declarations> 
  6.                 <!-- 将非可视元素(例如服务、值对象)放在此处 --> 
  7.         </fx:Declarations> 
  8.         <fx:Script> 
  9.                 <![CDATA[ 
  10.                         import com.hurlant.crypto.symmetric.CBCMode; 
  11.                         import com.hurlant.crypto.symmetric.DESKey; 
  12.                          
  13.                         import mx.utils.Base64Decoder; 
  14.                         import mx.utils.Base64Encoder; 
  15.  
  16.                          
  17.                         private var des:DESKey; 
  18.                         private var cbc:CBCMode; 
  19.                         private var key:ByteArray; 
  20.                         private var iv:ByteArray; 
  21.                         private var tmpByteArray:ByteArray; 
  22.                          
  23.                         private function clickHandler():void 
  24.                         { 
  25.                                 key= new   ByteArray(); 
  26.                                 key.writeUTFBytes("135daac"); 
  27.                                  
  28.                                 iv= new   ByteArray(); 
  29.                                 iv.writeUTFBytes("3534ftyywwer"); 
  30.                                  
  31.                                 des=new DESKey(key); 
  32.                                 cbc = new   CBCMode(des); 
  33.                                 cbc.IV = iv; 
  34.                                 tmpByteArray=convertStringToByteArray(test.text);     
  35.                                 cbc.encrypt(tmpByteArray); 
  36.                                 var $base64:Base64Encoder = new Base64Encoder();    
  37.                                 $base64.insertNewLines =   false;//该值等于true时,输出的结果会自动换行,默认为true,    
  38.                                 $base64.encodeBytes(tmpByteArray);//这里注意,如果想加密中文就不要使用$base64.encode();    
  39.                                 jiami.text =  $base64.toString(); 
  40.                         } 
  41.                         private function decClickHandler():void 
  42.                                  
  43.                         { 
  44.                                 var $base64D:Base64Decoder = new Base64Decoder();    
  45.                                 $base64D.decode(jiami.text);//这里注意,如果想加密中文就不要使用$base64.encode(); 
  46.                                 tmpByteArray=$base64D.toByteArray(); 
  47.                                 cbc.decrypt(tmpByteArray); 
  48.                                 jiemi.text = convertByteArrayToString(tmpByteArray);//输出结果 
  49.                         } 
  50.                          
  51.                         private function convertStringToByteArray(string:String):ByteArray 
  52.                         { 
  53.                                 var bytes:ByteArray; 
  54.                                 if ( string) { 
  55.                                         bytes = new ByteArray(); 
  56.                                         bytes.writeUTFBytes(string);// writeUTFBytes(value:String) 将 UTF-8 字符串写入字节流; 
  57.                                 } 
  58.                                 return bytes; 
  59.                         } 
  60.                          
  61.                         private function convertByteArrayToString(bytes:ByteArray):String 
  62.                         { 
  63.                                 var str:String; 
  64.                                 if ( bytes ) { 
  65.                                         bytes.position = 0; // 在将 ByteArray 转换成 String中应注意将 bytes 的 position 设置为 0,切记; 
  66.                                         str = bytes.readUTFBytes(bytes.length); // readUTFBytes(length:uint):从字节流中读取一个由 length 参数指定的 UTF-8 字节序列,并返回一个字符串; 
  67.                                 } 
  68.                                 return str; 
  69.                         } 
  70.                 ]]> 
  71.         </fx:Script> 
  72.          
  73.         <s:TextInput x="10" y="10" id="test"/>  
  74.         <s:Button x="19" y="58" label="cuplayer.com加密" click="clickHandler()"/>  <s:Label id="jiami" x="135" y="58"/> 
  75.         <s:Button x="19" y="91" label="cuplayer.com解密" click="decClickHandler()"/> <s:Label id="jiemi" x="135" y="91"/> 
  76.          
  77.          
  78. </s:Application> 

 

热门文章推荐

请稍候...

保利威视云平台-轻松实现点播直播视频应用

酷播云数据统计分析跨平台播放器