首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在PHP中解密as3crypto加密文本

在PHP中解密as3crypto加密文本
EN

Stack Overflow用户
提问于 2013-03-19 03:17:17
回答 2查看 1.7K关注 0票数 1

我试图通过演示应用程序加密as3crypto中的文本。

现在,我正试图通过php解密加密文本,但似乎该文本没有被正确解密。有人知道如何通过PHP正确地解密它吗?还是我做错了?请告诉我..。

下面是一个场景:

  1. http://crypto.hurlant.com/demo/encryption: AES中加密 模式: CBC 填充:密钥: 11918f8bcd112e92744125008722050c 文本: Lorem ipsum dolor,Lorem ipsum dolor,consectetur adipiscing elit.[医]马尾草、紫癜、晶状体、玻璃体等。 初始化向量:将其保留为空白
  2. 按加密键。选择base64并复制密码文本。
  3. 创建一个具有这些代码的php脚本并运行它: $cipher = MCRYPT_RIJNDAEL_128; $mode = MCRYPT_MODE_CBC; $key = "11918f8bcd112e92744125008722050c"; $cipher =“在这里放置密码文本.”; $data = base64_decode($cipher); 回声mcrypt_decrypt($cipher,$key,$data,$mode);
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-03-19 05:29:13

问题可能在你的钥匙里。虽然您可以将一个十六进制字符串提供给as3crypto,并且它知道如何处理它,但mcrypt_decrypt会将每个字符解释为它的基础ASCII值(例如a= 97),而不是它的十六进制值(a = 10)。使用hex2bin方法将十六进制字符串转换为字节字符串,您的解密可能工作得很好。

此外,问题可能在于as3crypto和php之间默认IV (初始化向量)的不同想法。由于您使用的是CBC模式,所以您应该指定一个IV,这是一种良好的安全实践。还请注意与您的密钥类似的潜在缺陷,即在as3中指定十六进制字符串,并需要在php中将其转换。

票数 1
EN

Stack Overflow用户

发布于 2013-11-10 18:09:47

这样做是可行的:

PHP代码:

代码语言:javascript
复制
//notice that $key and $iv length must be 16 chars long! ex: 1234567890123456
function decrypt($data,$key,$iv)
{

    $decr= mcrypt_decrypt(MCRYPT_RIJNDAEL_128, $key, base64_decode($data), MCRYPT_MODE_CBC, $iv);    
    return $decr;   
}

这是AS3代码

代码语言:javascript
复制
//notice that $key and $iv length must be 16 chars long! ex: 1234567890123456
private function encrypt(input:String,decrKey:String,decrIV:String):String
{
    var inputBA:ByteArray=Hex.toArray(Hex.fromString(input));        
    var key:ByteArray = Hex.toArray(Hex.fromString(decrKey));                
    var pad:IPad = new NullPad();
    var aes:ICipher = Crypto.getCipher("aes-cbc", key, pad);
    var ivmode:IVMode = aes as IVMode;
    ivmode.IV = Hex.toArray(Hex.fromString(decrIV));            
    aes.encrypt(inputBA);  

    return Base64.encodeByteArray( inputBA);
}       
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15490903

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档