我需要通过PHP脚本或MySQL将用户插入到Wordpress博客中,并且我有一个纯文本密码。我以为我可以这样做:
$query = "INSERT INTO $new_db.wp_users (user_login, user_pass, user_nicename)
select user_email, md5(user_password), user_name from $source_db.users";
但是密码看起来与现在Wordpress密码的外观不同。所有密码都以$P$B
从阅读中说它有一个盐...有没有办法获取像test123这样的密码并将其转换成Wordpress期望的加密密码?
答案 0 :(得分:5)
最明智的解决方案就是使用相关的WordPress功能(wp_generate_password)本身。
但是,如果这不是一个选项,您可以简单地提取wp_generate_password
函数(它在/wp-includes/pluggable.php中)和相关的支持函数。
答案 1 :(得分:1)
Wordpress使用phpass散列,这与MD5不同。
答案 2 :(得分:1)
创建密码的最简单方法是......
不要忘记从其他帐户复制“wp_capabilities”和“wp_user_level”。
答案 3 :(得分:-1)
此功能将执行您所描述的转换密码:
<?
function encrypt_for_wordpress($plain_text_password) {
return md5("\$P\$B" . $plain_text_password);
}
您需要从source_db
中选择它,在PHP中进行转换,然后将其插入new_db
。
答案 4 :(得分:-1)
WordPress曾经使用过MD5密码,但仍然可以。将密码设置为MD5哈希应该可以正常工作。当每个用户第一次登录时,WordPress将根据它现在使用的更强的安全性重新密码。