Rijndael-256 加密解密在 PHP 中


Rijndael-256 Encryption Decryption in PHP

我遇到一种情况,我必须在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));
   }

MCRYPT_RIJNDAEL_256 ia 不是 AES 与 256 位密钥,其 RIJNDAEL 与 256 位块大小。

要解密 256 位 AES ,您需要将MCRYPT_RIJNDAEL_128与 256 位密钥一起使用。