我正在研究密码加密算法。我知道 bcrypt、scrypt 和变种的存在,但我想在这个问题上挑战自己,这就是我在 PHP 中提出这个算法的原因:
$secret = md5( uniqid( mt_rand(), true ) ); // Length is 32
$passwd = 'qwert123';
$hash = $secret . hash( 'sha256', $secret + $passwd );
由于秘密是随机确定并添加在密码哈希的前面,我可以像这样验证密码输入:
$secret = substr( $hash_from_db, 0, 32 );
$hash_from_db === $secret . hash( 'sha256', $secret + $input_from_user );
你怎么看这个实现?我想收到一些关于它的反馈。谢谢你。