【发布时间】:2013-05-29 12:47:42
【问题描述】:
mcrypt_decrypt 给了我额外的不可见字符,这些字符通过在页面上回显是不可见的。只能通过将其写入文本文件来查看。意思是,只显示在页面上是可以的,很难被注意到。
这是谷歌搜索的代码示例。 请指导我正确用法是什么有问题:
function encrypt ($pure_string, $key) {
$iv_size = mcrypt_get_iv_size(MCRYPT_BLOWFISH, MCRYPT_MODE_ECB);
$iv = mcrypt_create_iv($iv_size, MCRYPT_RAND);
$encrypted_string = mcrypt_encrypt(MCRYPT_BLOWFISH, $encryption_key, $pure_string, MCRYPT_MODE_ECB, $iv);
return $encrypted_string;
}
function decrypt ($encrypted_string, $key) {
$iv_size = mcrypt_get_iv_size(MCRYPT_BLOWFISH, MCRYPT_MODE_ECB);
$iv = mcrypt_create_iv($iv_size, MCRYPT_RAND);
$decrypted_string = mcrypt_decrypt(MCRYPT_BLOWFISH, $encryption_key, $encrypted_string, MCRYPT_MODE_ECB, $iv);
return $decrypted_string;
}
但是当我尝试时:
$encrypted_string = encrypt("This is the original string.", "ABC123");
echo decrypt($encrypted_string, "ABC123");
.. 我得到类似的东西:
This is the original string.�������
������� 这个奇怪的字符实际上不可见 你/我只是 echo 它。只能写入文本文件才能看到。
- 请问我错过了什么?
- 有没有完美的方法来实现这种加密/解密?
谢谢。
【问题讨论】:
-
MCRYPT_MODE_ECB-- 糟糕 .. 你不应该使用这个 -
@Baba 不,这不是重复的。完全不同的问题。这也不是
trim的问题。 -
添加它有重复,因为..你的加密有很多问题
MCRYPT_RAND,MCRYPT_MODE_ECB缺少PKCS7 padding,padding oracle attacks..你可以学习很多示例类必须在这里复制答案
标签: php character encryption mcrypt