mysql - 在 mysql 中复制 wordpress 密码哈希

标签 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 哈希。基本上,当密码传递给 wordpress 时,它会运行 wordpress PHPass 散列,这将因 MD5('123') 之类的东西而失败然后 wordpress 将尝试其他更简单的散列算法,例如 SHA1 最后MD5。然后,如果在其中一个上找到匹配项,wordpress 实际上会更新相关记录的密码列。它将给定的密码更新为 PHPass。发生这种情况后,您仍然可以继续前进。这基本上非常适合开发环境,但与 PHPass 的工作相匹配的 MySQL 查询是一项史诗般的任务。如果我破解了它,那将是我的下一个更新。显然 wordpress 正在运行附加盐的河豚哈希大约 8000 次以生成最终的哈希结果。

最佳答案

实际上,根据我的观察,您甚至发布了正确的 sql。

<?php

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

mysql_select_db($database, $connection);

mysql_query('SQL_YOU_POSTED', $connection);

?>

关于mysql - 在 mysql 中复制 wordpress 密码哈希,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15349451/

相关文章:

database - django 和 php(bb) 论坛中的相同哈希

php - MySql PHP 按个性化时间值排序

php - 如何查询数据库的中间值并按最接近的排序?

php - mysql 不更新 html/php 中的信息

html - CSS 下拉菜单样式重叠

java - Webview自动输入密码的方法

ios - 为什么我的 iOS 应用关联域端点没有被 Apple 调用?

jquery - MySQL 行选择仅在结果不相同时递增

php - 在 thankyou 上显示内容 - WooCommerce

mysql - 制作 Meta_Key 列标题