【问题标题】:Password in md5 decrypted to English (PHP MYSQL) [duplicate]md5中的密码解密为英文(PHP MYSQL)[重复]
【发布时间】:2017-04-11 07:56:36
【问题描述】:

我有一个密码存储在数据库中,它在浏览器中显示为 md5,因为它在那里保存为 md5

下面是正在使用的代码

$result=$link->query("select * from adminpanel");
 
echo "<tr><th>User Name</th><th>Password</th></tr>";
 
// loop through results of database query, displaying them in the table
 
while($row =mysqli_fetch_array($result,MYSQLI_ASSOC)) {
// foreach( $result as $row ) { 
 

 
// echo out the contents of each row into a table
 
echo "<tr>";
 
echo '<td>' . $row['username'] . '</td>';
 
echo '<td>' . $row['password'] . '</td>';

它在表格中显示每个用户的用户名和密码,但我想用英语显示密码。有可能吗?

【问题讨论】:

  • 不想显示解密的密码?
  • 当您将密码存储在 md5 中时这是不可能的——这确实是重点。您可以将密码存储为另一种无法解密的格式 - 但这是不安全且非常糟糕的格式。
  • 首先,为什么要使用 md5 进行哈希处理,它已被弃用,开发人员不再使用。
  • 不想听起来像个聪明人,但又不想将密码存储为 md5 哈希,请使用 password_hashhttp://php.net/manual/en/function.password-hash.php。 MD5 是一种单向散列,但不是非常强的散列。并且请不要出于任何原因以明文形式存储密码。

标签: php md5


【解决方案1】:

md5 是一个哈希值;您无法“撤消” md5 加密

【讨论】:

    【解决方案2】:

    MD5cryptographic hash function。这些函数的关键在于您无法反转它们。也就是说:你不能从 MD5 和中“解密”密码。

    这些用于密码的方式是对用户输入的密码进行哈希处理,并将该哈希值与您存储在数据库中的密码进行比较。但是 MD5 实际上并不适合这种情况,因为您可以使用rainbow table 轻松获得产生相同哈希值的密码。至少添加一些salt

    【讨论】:

      【解决方案3】:

      散列是一种单向运算,这意味着它不能被解密。 根本无法解密 MD5 加密值。如果在您的情况下您需要它,那么您可以使用任何其他双向操作作为密码。

      【讨论】:

        猜你喜欢
        • 2014-07-02
        • 2019-10-10
        • 2018-03-28
        • 2011-07-14
        • 2011-10-24
        • 1970-01-01
        • 2014-02-20
        • 1970-01-01
        • 2015-01-26
        相关资源
        最近更新 更多