我如何在登录表单中使用sha512?

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)

当我登录返回给我

提供的密码无效.

为什么?

Cod*_*aos 5

盐最重要的特性是独特的(或者至少是重复的).一种方法是随机生成它.你显然需要足够的熵.128位是充足的,所以没有理由比这更长的盐.

用sha512哈希盐并不会增加安全性.它只是膨胀盐.