【问题标题】:How can i display the password unencrypted in a text input field? . I encrypted password with hash如何在文本输入字段中显示未加密的密码? .我用哈希加密密码
【发布时间】:2015-02-15 18:16:36
【问题描述】:

我用哈希加密密码

 $user->contrasenia = password_hash($password,PASSWORD_DEFAULT);

在输入中我想显示未加密的密码

<input type='text' class='form-control' id='password' name='password'

【问题讨论】:

  • 概念失败。哈希不是一种加密方法。这是一种单向(理论上)散列算法。

标签: php laravel hash md5


【解决方案1】:

你不能单向散列

为了验证您可以使用的密码

if (Hash::check('secret', $hashedPassword))
{
    // The passwords match...
}

参考Here

【讨论】:

    【解决方案2】:

    你不知道,这是一种单向哈希。就其设计而言,它不能被取消散列。仅核对。

    你可以使用:

    if (password_verify('rasmuslerdorf', $hash)) {
        echo 'Password is valid!';
    } else {
        echo 'Invalid password.';
    }
    

    【讨论】:

    • 如果您真的想这样做并且抛开任何安全问题,您可以将纯文本版本的哈希存储在您的数据库中。但这是强烈建议
    • 那么 Firefox 是如何做到的(您可以在以后以纯文本形式显示所有记住的密码)?这是否意味着 Ff 以纯文本形式存储所有密码?
    • 我想他们将密码以纯文本形式存储在一个文件中,然后使用两种方式加密整个文件。 Firefox 支持指南似乎也建议这样做:"Even though the Password Manager stores your usernames and passwords on your hard drive in an encrypted format, someone with access to your computer can still see or use them."support.mozilla.org/en-US/kb/…
    • 谢谢,有道理。
    【解决方案3】:

    散列密码的全部意义在于您无法取消散列密码。用户输入密码后,将创建该输入的新哈希。将比较两个哈希值,如果匹配,则允许用户登录。

    如果你真的想要,但我不建议这样做,你可以保存未散列的密码。

    您还可以对密码进行加密和解密。这将使它更安全,但它仍然不是正确的方法。如果您选择这样做,您可以使用我在 github 上的 Cipher 课程。

    【讨论】:

      猜你喜欢
      • 2023-04-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-08-02
      • 2015-10-02
      • 1970-01-01
      • 2011-12-06
      • 2012-05-06
      相关资源
      最近更新 更多