【发布时间】:2019-07-04 14:41:56
【问题描述】:
我正在尝试提出一种安全算法来加密和解密我正在处理的项目中的特定字符串。我正在使用 mcrypt_encrypt 和 MCRYPT_RIJNDAEL_256 分组密码变体。
我测试了很多,发现这个看起来很安全。
我正在将加密和解密转换为函数,以便在我的项目未来的多个实例中调用它们。到目前为止,这就是我想出的。我的问题是,是否有任何方法可以使其更安全、更难解密,或者是否有任何已知更好的新公式/方法。
function encrypt($privatekey, $stringe)
{
$var = mcrypt_encrypt(MCRYPT_RIJNDAEL_256, $privatekey, $stringe,
MCRYPT_MODE_CBC, $privatekey);
return base64_encode($var);
}
function decrypt($privatekey, $stringd)
{
$stringd = str_replace("~", "+", $stringd);
$var = mcrypt_decrypt(MCRYPT_RIJNDAEL_256, $privatekey,
base64_decode($stringd), MCRYPT_MODE_CBC, $privatekey);
$var = rtrim($var, "\0\4");
return $var;
}
【问题讨论】:
-
mcrypt 多年未使用。它已被弃用,并且不支持更多现代填充方案、分组密码模式等。另请注意,您的代码不会验证密文,也不能正确处理 IV。请参阅this repository 中的 PHP 示例以查看现代且安全的示例。
-
@LukeJoshuaPark 谢谢你的回复,我感觉我走错了路。感谢您回复我,我将通读您的参考资料。
标签: php encryption mcrypt