【问题标题】:Just want to know something about passwords只是想知道一些关于密码的事情
【发布时间】:2015-06-15 04:12:54
【问题描述】:

我正在为 WordPress 创建我的第一个插件,我也刚刚开始使用 PHP。一路上经历了很多坎坷,但到目前为止一切看起来都很棒!我只是想弄清楚密码是如何存储在 mysql 中的。

我正在使用以下代码将一些用户信息从一个数据库传输到另一个数据库:

$userdata = array(    
    'user_pass' => 'password'
);

现在我只是手动输入密码,但理想情况下,我想将密码从一个数据库存储到一个变量中,然后将其插入上面显示的数组中。

我假设(如果我错了,请纠正我)我不能只使用 sql 来选择该加密密码,然后将其放入一个变量中并期望它能够工作。有没有办法在新数据库上使用与旧数据库相同的用户密码?

我知道这可能是一个非常基本的问题,但我对这一切还是很陌生。我还没有真正深入研究 PHP 的安全功能。 感谢您的帮助!

【问题讨论】:

  • 在大多数密码系统中,存储纯文本密码。只有哈希和盐是。如果您需要纯文本密码 - 在某些情况下需要 - 这可能表明问题没有得到正确解决。
  • 您可以更改数据库,以便相同的用户凭据可以访问两者

标签: php mysql sql wordpress security


【解决方案1】:

您可以使用 sql 选择加密密码并将该结果用作变量。这与从数据库中获取任何其他信息相同。

【讨论】:

    【解决方案2】:

    我假设(如果我错了,请纠正我)我不能只使用 sql 选择该加密密码,然后将其放入变量中并期望 它工作。有没有办法在新的上使用相同的用户密码 旧数据库中的数据库?

    您将能够像任何其他数据库元素一样使用 SQL 命令选择加密密码并将其存储到 PHP 变量中。但是,您应该记住,如果您计划在存储密码的新服务器/数据库上解密密码,请务必记下旧 PHP 脚本中的任何散列/盐渍算法用于加密它们。

    【讨论】:

      【解决方案3】:

      出于安全原因,密码不应以纯文本形式存储,而应以散列形式存储,例如使用hash_pbkdf2

      从代码和数据库的角度来看,散列密码仍然只是一个长而奇特的字符串。将它们从数据库读取到您的数据结构,然后将它们写回另一个数据库,不应以任何方式影响它们。无论您使用哪种方法对旧数据库进行用户身份验证,新数据库仍然可以使用。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-01-18
        • 2014-03-29
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多