首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在php中解密数据库中的密码?

如何在php中解密数据库中的密码?
EN

Stack Overflow用户
提问于 2015-02-03 23:22:04
回答 2查看 550关注 0票数 0

我正在创建一个编辑信息页面,但是当我调用密码的数据时,它是加密的。有没有办法让我解密它?

这是我的代码

代码语言:javascript
复制
<?php
require 'dbfunction.php';

$con = getDbConnect();


   if (mysqli_connect_errno($con)) {
      "Failed to connect to MySQL: " . mysqli_connect_error();
   } else {
      $result = mysqli_query($con, "SELECT * FROM admininfo where name = xyz");

   while ($admininfo = mysqli_fetch_array($result)) {
                           
                            ?>

  <div class="container">
    <div class="row">

      <center>
        <h2>Edit Info Administrator</h2>
      </center>
      <form>

        <div class="form-group">
          <label class="col-sm-2 control-label">Name</label>
          <div class="col-md-10">
            <input type="text" class="form-control" value="<?php echo $admininfo['name']; ?>" name="name">
          </div>
        </div>

        <div class="form-group">
          <label class="col-sm-2 control-label">Password</label>
          <div class="col-md-10">
            <input type="password" class="form-control" placeholder="<?php echo $admininfo['password']; ?>" name="password">
          </div>
        </div>

        <div class="form-group">
          <label class="col-sm-2 control-label">Comfirm Password</label>
          <div class="col-md-10">
            <input type="password" class="form-control" placeholder="Confirm Password" name="confirmpassword">
          </div>
        </div>

        <div class="form-group">
          <div class="col-sm-10 col-sm-offset-2">
            <input type="submit" value="edit account" class="btn btn-primary">
          </div>
        </div>

      </form>
    </div>
  </div>



<?php } mysqli_close($con); } ?>

当前正在显示名称,只有密码是加密的。

EN

回答 2

Stack Overflow用户

发布于 2015-02-03 23:25:36

从您提供的代码中,无法知道密码是如何加密的。

如果操作得当,那么密码将使用a salt and a hashing algorithm存储,而不是任何类型的可逆加密。在这种情况下,答案将是“不”。

你永远不需要知道密码是什么,只需要设置一个新的密码,或者将提交的密码与现有的密码进行比较。后一种情况是通过使用相同的散列算法运行提交的密码并比较两个散列来处理的。

你的管理员可能也不应该直接设置新密码,他们应该有权访问一个功能,该功能可以通过电子邮件向用户发送一个只能使用的令牌,他们可以使用该令牌来设置新密码。

票数 5
EN

Stack Overflow用户

发布于 2015-02-03 23:25:59

这不是个好主意。当前,您将$admininfo['password']显示为占位符。这意味着它的字符实际上将在屏幕上可见,即使您输入的是密码类型也是如此。任何从你背后看的人都能看到它。不要这样做。

密码应该只存储在数据库中进行哈希和加盐处理。有一种方法可以检查某个明文是否是原始密码,但没有方法解密散列(除了暴力破解)。这样做是出于显而易见的安全原因。

看看password_hash()password_verify()吧。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28302473

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档