【问题标题】:CakePHP 3: Encrypt/decrypt passwordCakePHP 3:加密/解密密码
【发布时间】:2015-10-02 09:54:07
【问题描述】:

如何在编辑表单中显示解密的用户密码?

我在注册users时使用DefaultPasswordHasher作为Hashing密码:

protected function _setPassword($password) {
  return (new DefaultPasswordHasher)->hash($password);
}

很好用,而且密码是加密的……

但是当我在view pageedit page 中使用user table 时,它会显示加密 密码。那么如何解密控制器中的密码以及在编辑页面时它还解密并存储在CakePHP 3.x的数据库中?

【问题讨论】:

    标签: cakephp-3.0


    【解决方案1】:

    简单的答案是:你不能

    散列的全部意义在于您无法对密码进行逆向工程。这样当您的数据库被黑客入侵或泄露时,密码不会造成任何伤害。

    任何显示您自己的密码的网站都存在严重的安全问题,我不会使用它。

    显示加密密码也没有意义。不需要编辑密码,您只需覆盖旧密码(当他们仍然可以提供旧密码时),如果您的用户忘记了自己的密码,您应该使用他们的电子邮件为他们提供恢复系统。

    【讨论】:

    • 但是当您需要使用 Cakephp3 更新用户配置文件时,您需要首先显示用户旧密码..为此我们必须编写一些函数或代码来解密存储的加密密码.. 所以我的问题是我们如何解密 cakephp3 控制器中的密码??
    • 再次简单的回答:你不能。解密正确散列的密码是不可能的。
    • 那么恢复系统是如何工作的呢?他们如何通过电子邮件将原始密码发送给用户?
    • @Vito,从不!您可以根据请求向用户发送新密码,或者发送带有一次性令牌的链接以自行更改密码。我不能再强调任何以任何方式向您发送或显示您自己的密码的系统都已损坏并且存在严重的安全问题。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多