Pop*_*tus -2 security encryption symfony
我投入了 security.yml
Acme\UserBundle\Entity\User: sha512
Run Code Online (Sandbox Code Playgroud)
但我也改变了这个?:
$this->salt = base_convert(sha1(uniqid(mt_rand(), true)), 16, 36);
Run Code Online (Sandbox Code Playgroud)
同
$this->salt = base_convert(sha512(uniqid(mt_rand(), true)), 16, 36);
Run Code Online (Sandbox Code Playgroud)
?
如果我有这个security.yml:
Acme\UserBundle\Entity\User: sha512
Run Code Online (Sandbox Code Playgroud)
如果我有这个 user.php
$this->salt = base_convert(sha1(uniqid(mt_rand(), true)), 16, 36);
Run Code Online (Sandbox Code Playgroud)
当我登录返回给我
提供的密码无效.
为什么?
盐最重要的特性是独特的(或者至少是重复的).一种方法是随机生成它.你显然需要足够的熵.128位是充足的,所以没有理由比这更长的盐.
用sha512哈希盐并不会增加安全性.它只是膨胀盐.