上PHP加密困难

问题描述:

我必须传递值并将其加密,以如下规格的Rijndael 256:上PHP加密困难

“的256位密钥长度,256位的块长度,32字节的块,ECB模式,有 ASCII编码(加密数据预期为字符串 ,每个字符已转换为2个字节的HEX值)“

但是我必须缺少一些东西。这是用于Web服务的验证目的,但由于解密失败,我一直被拒绝。

这是我有:

$key = '1324mykey'; 
$string = 'Ron Swanson'; 

// 1. Encrypt the string with the key using Rijndael 256 in ECB mode 
$td = mcrypt_module_open('rijndael-256', '','ecb', ''); 
$iv = mcrypt_create_iv (mcrypt_enc_get_iv_size($td), MCRYPT_RAND); 
mcrypt_generic_init($td, $key, $iv); 
$encrypted_string = mcrypt_generic($td, $string); 

// 2. Base64 encode my string 
$encrypted_string = base64_encode($encrypted_string); 

// 3. Convert each character of encrypted_string to it's 2-byte HEX value 
$hex=''; 
for ($i=0; $i < strlen($encrypted_string); $i++) 
{ 
    $hex .= dechex(ord($encrypted_string[$i])); 
} 

// Now $encrypted_string should match up with the recipe, but it isn't. 
$encrypted_string = $hex; 

我希望有一些基本的东西在我的思念在我的我的方法的步骤1的加密要求。

如果您的要求是256位密钥,您的$key变量是不是32字节? (换句话说,32个字符长)?

+0

对不起......实际的密钥是32个字节,但是我没有在这里发布,因为这是不必要的谨慎。 – 2012-01-12 14:29:43

这已经解决了...(un?)幸运的是,我只是给了一个错误的参数。