我有一个表单,是我通过Symfony formBuilder创建的
就像这样,我在我的领域里看到了加密密码:
$formBuilder->add('password', TextType::class, array('attr' => array('class' => 'form-control')));但实际上,我需要使用一个plainPassword字段(稍后对密码进行编码):
$formBuilder->add('plainPassword', TextType::class, array('attr' => array('class' => 'form-control')));但这片土地是空的。我希望看到数据库中的解密密码。我怎么能意识到这一点?
发布于 2018-11-20 11:17:03
理想情况下,您的密码是以一种方式散列的,您不能轻松地从存储的字符串中检索实际的密码。相反,您使用相同的选项散列用户输入,并比较两种哈希是否匹配。您正试图通过显示普通密码来规避安全机制。
最好不要向用户显示原始密码。或者他们知道,或者他们应该请求一个新的密码,你通过邮件发送给他们,或者更好地给他们一个令牌,他们可以输入一个新的密码,而不指定现有的密码。
如果出于某种原因,您不得不拒绝此建议,并实际显示普通密码(同样,这是高度不安全的),那么您必须以一种可以与散列密码一起读取它或代替散列的方式来存储它。您也可以使用加密而不是散列,例如使用openssl_encrypt存储密码,然后在显示密码时使用解密对应。
https://stackoverflow.com/questions/53391356
复制相似问题