加密字符串"1234567890"
后,我用hex2bin
函数将加密的字符串转换为二进制格式并得到"ea359482e4b20603bfe9"
。php解密加密数据
但我试图解密回1234567890失败(总是得到有线字符)。
我错过了什么?
下面是一个示例。
<?php
$text = "1234567890";
$key = "TestingKey";
echo "SRC: ".$text."<br/>";
$iv = mcrypt_create_iv(mcrypt_get_iv_size(MCRYPT_RIJNDAEL_256, MCRYPT_MODE_CFB), MCRYPT_RAND);
$encrypted = mcrypt_encrypt(MCRYPT_RIJNDAEL_256, $key, $text, MCRYPT_MODE_CFB, $iv);
//$encrypted = bin2hex($encrypted);
$encrypted = "ea359482e4b20603bfe9"; //this was one of the string that came out.
echo "ENC: ".$encrypted."<br/>";
$encrypted = hex2bin($encrypted);
$decrypted = mcrypt_decrypt(MCRYPT_RIJNDAEL_256, $key, $encrypted, MCRYPT_MODE_CFB, $iv);
echo "DEC: ".$decrypted."<br/>";
function hex2bin($text)
{
$len = strlen($text);
for($i=0;$i<$len;$i+=2)
{
$binary .= pack("C",hexdec(substr($text,$i,2)));
}
return $binary;
}
?>
谢谢!
谢谢Manhim。不幸的是,我必须使用mcrypt_encrypt,因为我正在处理的项目需要使用这种方法。 – Felasfaw
@Felasfaw我的意思是,而不是hex2bin,不用于加密o.O – Manhim