flex-php--des加密解密通用代码

来源:互联网 发布:汉王识别软件 编辑:程序博客网 时间:2024/05/22 02:16

包文件下载地址:http://download.csdn.net/detail/jiguoguo/7033045

导入com包后 代码如下  key 和iv必须8位。多了后两边就不同了

protected function phpToAs3Encode(plain:String):String{import com.hurlant.crypto.hash.HMAC;import com.hurlant.crypto.hash.IHash;import com.hurlant.crypto.hash.MD2;import com.hurlant.crypto.hash.MD5;import com.hurlant.crypto.hash.SHA1;import com.hurlant.crypto.hash.SHA224;import com.hurlant.crypto.hash.SHA256;import com.hurlant.crypto.prng.ARC4;import com.hurlant.crypto.rsa.RSAKey;import com.hurlant.crypto.symmetric.AESKey;import com.hurlant.crypto.symmetric.BlowFishKey;import com.hurlant.crypto.symmetric.CBCMode;import com.hurlant.crypto.symmetric.CFB8Mode;import com.hurlant.crypto.symmetric.CFBMode;import com.hurlant.crypto.symmetric.CTRMode;import com.hurlant.crypto.symmetric.DESKey;import com.hurlant.crypto.symmetric.ECBMode;import com.hurlant.crypto.symmetric.ICipher;import com.hurlant.crypto.symmetric.IMode;import com.hurlant.crypto.symmetric.IPad;import com.hurlant.crypto.symmetric.ISymmetricKey;import com.hurlant.crypto.symmetric.IVMode;import com.hurlant.crypto.symmetric.NullPad;import com.hurlant.crypto.symmetric.OFBMode;import com.hurlant.crypto.symmetric.PKCS5;import com.hurlant.crypto.symmetric.SimpleIVMode;import com.hurlant.crypto.symmetric.TripleDESKey;import com.hurlant.crypto.symmetric.XTeaKey;import com.hurlant.util.Base64;import flash.utils.ByteArray;var iv2:String = '12345678'; //key和 iv                        可以自己定义不同的var key2:String = '12345678';var key:ByteArray = new ByteArray();                        key.writeUTFBytes(key2);var  iv:ByteArray= new ByteArray();iv.writeUTFBytes(iv2);var des:DESKey = new DESKey(key);                        var cbc:CBCMode = new CBCMode(des); //加密模式                        ,有多种模式供你选择cbc.IV = iv; //设置加密的IV/* 得到的密文长度和明文的长度有关,规律大致是:明文<8 密文=12 ,明文<16 密文=24 ,明文>=16 密文=32......后面希望你们推一下*///var plain:String = "123456789"; //明文var tmpByteArray:ByteArray = convertStringToByteArray(plain); //转换成二进制编码 (该函数自己定义)cbc.encrypt(tmpByteArray);                         //利用加密模式对数据进行加密var as3Str:String = Base64.encodeByteArray(tmpByteArray); //利用base64对密文进行编码return as3Str;//trace("as3Str = "+as3Str);//输出结果 为: PXWVqYv/gJ04WpM5vlT9gg==}public function convertStringToByteArray(str:String):ByteArray{var bytes:ByteArray;if (str){bytes=new ByteArray();bytes.writeUTFBytes(str);}return bytes;}


下面是php代码

 

$key='12345678';$iv="12345678";$encrypt='123456789'; //被加密的字符串 PXWVqYv/gJ04WpM5vlT9gg==$tb=mcrypt_module_open(MCRYPT_3DES,'','cbc',''); //创建加密环境,要AES就把MCRYPT_3DES替换成"rijndael-128"  128/8 = 16 字节 表示IV的长度mcrypt_generic_init($tb,$key,$iv); //初始化加密算法$encrypt=$this->PaddingPKCS7($encrypt);$cipher=mcrypt_generic($tb,$encrypt); //执行加密$cipher=base64_encode($cipher);mcrypt_generic_deinit($tb);mcrypt_module_close($tb);echo $encrypt.' DES 加密后= '.$cipher.'<br>';echo " 密文长度 = ".strlen($cipher);//解密$tb=mcrypt_module_open(MCRYPT_3DES,'','cbc','');mcrypt_generic_init($tb,$key,$iv);$cipher=base64_decode($cipher);$pain=mdecrypt_generic($tb,$cipher);mcrypt_generic_deinit($tb);mcrypt_module_close($tb);echo base64_encode($cipher).'解密后 11= '.$pain.'<br>';


0 0
原创粉丝点击