Rijndael-256 PHP 中的加密解密
Posted
技术标签:
【中文标题】Rijndael-256 PHP 中的加密解密【英文标题】:Rijndael-256 Encryption Decryption in PHP 【发布时间】:2012-05-06 02:12:06 【问题描述】:我有一种情况,我必须在 php 中加密和解密 SOAP xml。我正在尝试加密肥皂 xml 的信封。加密有效,但解密无效。对于加密和解密,我使用本文中指定的代码:
http://blog.djekldevelopments.co.uk/?p=334
如果输入字符串包含任何特殊字符(例如:''),则解密不起作用。我该如何解决这个问题?
function decrypt($string = "")
$keyfile = "./AES.keyz";
$keyfile = file($keyfile);
$key = base64_decode($keyfile[0]);
$iv = base64_decode($keyfile[1]);
$string = base64_decode($string);
return strippadding(mcrypt_decrypt(MCRYPT_RIJNDAEL_256, $key, $string,MCRYPT_MODE_CBC, $iv));
【问题讨论】:
@Alix Axel..使用 mcrypt 解密特殊字符时出现问题 【参考方案1】:MCRYPT_RIJNDAEL_256 不是具有 256 位密钥的 AES,它的 RIJNDAEL 具有 256 位块大小。
要解密 256 位 AES ,您需要使用 MCRYPT_RIJNDAEL_128 和 256 位密钥。
【讨论】:
以上是关于Rijndael-256 PHP 中的加密解密的主要内容,如果未能解决你的问题,请参考以下文章
是否有像 PHP 一样进行 Rijndael 256 位加密的 JavaScript 库?
JAVA如何解密用PHP加密的base64编码和RIJNDAEL 256的数据?
无法使用来自 AES-256-CBC 的 pgcrypto 解密,但 AES-128-CBC 可以