在mysql中复制wordpress密码哈希

时间:2013-03-11 21:54:38

标签: mysql wordpress passwords sql-update phpass

所以我希望能够更改user_pass列中我的wordpress wp_user表中存在的密码哈希值。我希望能够写出如下内容:

# simplified version of what is desired.
UPDATE `wp_user` SET user_pass = MD5('123') WHERE user_email = 'some_dudes@someplace.com';

基本上,我希望能够在mysql中设置用户密码,以便在我使用查询设置后,当用户通过登录表单输入密码时,wordpress将继续接受此密码。我正在审查有关此内容的PHPass信息以及wordpress源代码中class-phpass.php的内容。从我的研究来看,这似乎非常复杂,如果不是不可行的话。我是否遗漏了某些内容,或者这实际上是为了难以实现或可能是模糊不清的?是否有可能在MySQL中复制此功能?任何帮助,将不胜感激。谢谢你。

关于进展的编辑: 如果您只需要开发级别的安全性,那么您实际上可以使用以下内容:

UPDATE `wp_user` SET user_pass = MD5('123') WHERE id = 1342;

我应该更好地解释为什么这样做。由于遗留兼容性原因,Wordpress默认为MD5哈希。基本上,当密码被传递给word press时,它运行wordpress PHPass哈希,这将失败,如MD5('123')然后wordpress将尝试其他更简单的哈希算法,如SHA1,最后是MD5。然后,如果在其中一个上找到匹配项,wordpress实际上会更新相关记录的密码列。它将给定的密码更新为PHPass。在这发生之后,你仍然可以去。这基本上适用于开发环境,但是与PHPass的工作相匹配的MySQL查询是一项史诗般的任务。如果我破解那,那将是我的下一次更新。显然,wordpress正在运行盐附加的河豚哈希值大约8000倍以生成最终的哈希结果。

1 个答案:

答案 0 :(得分:-3)

实际上,您甚至可以从我看到的内容中发布正确的sql。

<?php

$connection = mysql_connect('SERVER', 'USERNAME', 'PASSWORD');

mysql_select_db($database, $connection);

mysql_query('SQL_YOU_POSTED', $connection);

?>