在每个密码 yii 中加盐
salt in every password yii
我有一个名为 salt 的 table 列,它是必填字段,但我不希望用户输入他们自己的盐
我们的系统有没有办法为每个通过 sha1 加密的密码生成盐?
您可以为每个条目使用一个随机值作为盐。只要它看起来是随机的,值是多少并不重要。
在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)));
}
您正在使用 Yii,所以让我们使用 YII 风格
我用
Yii::app()->securityManager->generateRandomString($length,true)
要了解它,请单击 here
Yii 框架提供了一个 class CPasswordHelper,它生成安全的 BCrypt 散列,每个密码包含一个盐。有了这个 class 你就可以不用单独的盐场了。 Yii 文档中的示例:
$hash = CPasswordHelper::hashPassword($password);
if (CPasswordHelper::verifyPassword($password, $hash))
// password is good
else
// password is bad
我有一个名为 salt 的 table 列,它是必填字段,但我不希望用户输入他们自己的盐 我们的系统有没有办法为每个通过 sha1 加密的密码生成盐?
您可以为每个条目使用一个随机值作为盐。只要它看起来是随机的,值是多少并不重要。
在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)));
}
您正在使用 Yii,所以让我们使用 YII 风格
我用
Yii::app()->securityManager->generateRandomString($length,true)
要了解它,请单击 here
Yii 框架提供了一个 class CPasswordHelper,它生成安全的 BCrypt 散列,每个密码包含一个盐。有了这个 class 你就可以不用单独的盐场了。 Yii 文档中的示例:
$hash = CPasswordHelper::hashPassword($password);
if (CPasswordHelper::verifyPassword($password, $hash))
// password is good
else
// password is bad