我有一些表单输入需要加密才能进行数据库存储。我不确定我是否使用最好的加密。这是我在环境文件中保存的字符串加密和解密。
class encrypt
{
public static function encrypt_text($value)
{
if(!$value) return false;
$crypttext = mcrypt_encrypt(MCRYPT_RIJNDAEL_256, env('ENCRYPT_STRING_1'), $value, MCRYPT_MODE_ECB, env('ENCRYPT_STRING_2'));
return trim(base64_encode($crypttext));
}
public static function decrypt_text($value)
{
if(!$value) return false;
$crypttext = base64_decode($value);
$decrypttext = mcrypt_decrypt(MCRYPT_RIJNDAEL_256, env('ENCRYPT_STRING_1'), $crypttext, MCRYPT_MODE_ECB, env('ENCRYPT_STRING_2'));
return trim($decrypttext);
}
}
答案 0 :(得分:3)
加密代码问题。
trim()
+空填充 - >如果您尝试使用此方法存储二进制数据,则会在开头和结尾丢失字节回到你发现代码的地方并告诉他们他们教你错了。 See this answer提供更好的选择。