我有一个名为salt的表格列,它是必填字段,但我不希望用户输入自己的盐 我们的系统有没有办法为每个密码生成一个盐,通过sha1加密?
答案 0 :(得分:1)
您正在使用Yii,因此我们以 YII风格
执行此操作我用
Yii::app()->securityManager->generateRandomString($length,true)
要了解它,请点击here
答案 1 :(得分:1)
Yii框架提供了一个类CPasswordHelper,它使用每个密码包含的盐生成安全的BCrypt哈希值。使用此类,您可以不使用盐的单独字段。来自Yii纪录片的一个例子:
$hash = CPasswordHelper::hashPassword($password);
if (CPasswordHelper::verifyPassword($password, $hash))
// password is good
else
// password is bad
答案 2 :(得分:0)
您可以将每个条目的随机值用作盐。只要看起来是随机的,价值是多少并不重要。
答案 3 :(得分:0)
使用最简单的加密&解密PHP中的信息
$salt ='whatever_you_want';
function simple_encrypt($text)
{
return trim(base64_encode(mcrypt_encrypt(MCRYPT_RIJNDAEL_256, $salt, $text, MCRYPT_MODE_ECB, mcrypt_create_iv(mcrypt_get_iv_size(MCRYPT_RIJNDAEL_256, MCRYPT_MODE_ECB), MCRYPT_RAND))));
}
function simple_decrypt($text)
{
return trim(mcrypt_decrypt(MCRYPT_RIJNDAEL_256, $salt, base64_decode($text), MCRYPT_MODE_ECB, mcrypt_create_iv(mcrypt_get_iv_size(MCRYPT_RIJNDAEL_256, MCRYPT_MODE_ECB), MCRYPT_RAND)));
}