Я использую Yii CSecurityManager для шифрования пароля:Yii шифровать и дешифровать пароль
$this->securityManager->encrypt('TEST', '1');
* ТЕСТ является строка для шифрования и 1 ключ.
, но когда я тестирую перед расшифровкой, я обнаружил, что значение продолжает меняться.
for ($index = 0; $index < 10; $index++) {
$EncPassword = $this->securityManager->encrypt('TEST', '1');
echo $EncPassword;
}
Я полагаюсь на это значение в другой части моего заявления ... Я порылся в пароле ENCRYPT я вижу, что это на самом деле случайно:
public function encrypt($data,$key=null)
{
$module=$this->openCryptModule();
$key=$this->substr($key===null ? md5($this->getEncryptionKey()) : $key,0,mcrypt_enc_get_key_size($module));
srand();
$iv=mcrypt_create_iv(mcrypt_enc_get_iv_size($module), MCRYPT_RAND);
mcrypt_generic_init($module,$key,$iv);
$encrypted=$iv.mcrypt_generic($module,$data);
mcrypt_generic_deinit($module);
mcrypt_module_close($module);
return $encrypted;
}
поэтому мой вопрос заключается в том могу ли я шифровать на основе ключа и получать одинаковое значение каждый раз?
спасибо, Дэнни
Почему вы хотите шифровать пароли? – JimL
это часть моего приложения ... это не только пароль, и мне нужна эта функция –
Но почему? Это не имеет смысла, даже если вам нужно зашифровать некоторые данные, нет необходимости в том, чтобы каждый раз генерировать один и тот же вывод. И пароли не должны быть зашифрованы, они должны быть хэшированы. – JimL