Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/wordpress/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql Wordpress/codeigniter传输sql数据库密码_Mysql_Wordpress_Passwords - Fatal编程技术网

Mysql Wordpress/codeigniter传输sql数据库密码

Mysql Wordpress/codeigniter传输sql数据库密码,mysql,wordpress,passwords,Mysql,Wordpress,Passwords,我遇到了一个需要快速解决的问题。我会尽力解释的 我有一个wp_user表(来自WordPress),其中所有成员都使用WordPress加密功能进行密码加密。我必须将这个表转移到一个新的Mysql数据库,这个数据库位于一个使用Codeigniter的新网站上 对于在codeigniter下工作的新站点上的新成员,我使用MD5函数来屏蔽密码 但问题是这两个功能是不同的,所以当一个老用户尝试连接到我的新网站时,这不起作用,因为密码不匹配 那么,我如何用普通的MD5密码翻译wordpress加密呢 或

我遇到了一个需要快速解决的问题。我会尽力解释的

我有一个wp_user表(来自WordPress),其中所有成员都使用WordPress加密功能进行密码加密。我必须将这个表转移到一个新的Mysql数据库,这个数据库位于一个使用Codeigniter的新网站上

对于在codeigniter下工作的新站点上的新成员,我使用MD5函数来屏蔽密码

但问题是这两个功能是不同的,所以当一个老用户尝试连接到我的新网站时,这不起作用,因为密码不匹配

那么,我如何用普通的MD5密码翻译wordpress加密呢


或者可能不可能?

不幸的是,您必须执行这两个检查,或者只是更改CI以使用与WP相同的哈希方案。这可能是比较容易的选择。如果你真的想开始使用默认的CI哈希方案,你可以在成功登录时(当你有明文密码时)存储这两个哈希值并更新新的哈希值。

我不知道Wordpress使用什么样的哈希值作为密码,但我认为它是安全的和不可逆的。哈希密码无法转换为MD5等效密码,因为哈希是单向算法

以下是我给你的建议:

使用默认值
0
using_md5_flag
布尔列添加到新网站的用户表中。将密码从Wordpress复制到一列
wppassword
,并在用户登录系统时创建一个名为
md5password
的列。执行以下代码(假设Datamapper ORM,如果需要,转换为活动记录):

这段代码还没有经过测试,我是在StackOverflow的编辑器中编写的。。。但我会采用这种方法来缓慢地转换为更安全的散列。最后,如果您正在寻找一个真正安全的散列,请查看Bcrypt(),它更能抵抗彩虹表攻击


更新1:如果您需要使用带有CodeIgniter的Phpass库,您可以找到我修改过的副本(我添加了一个构造函数)。将其放入
libraries/Phpass.php
您可以使用以下方法在控制器中使用该库:

$this->load->library("phpass", array("iteration_count_log2" => 8, "portable_hashes" => FALSE));
$check = $this->phpass->CheckPassword($this->input->post('password'), $u->password);
if($check) /*logged in*/
else /*wrong credentials.*/

下载Phpass文件时,它附带一个
test.php
文件,演示函数的工作方式。我建议查看一下。

好的,谢谢,所以我必须在wordpress中找到加密密码的函数。。。你知道我在哪里可以找到它吗?如果你使用的是最新版本的WP,它是
WP\u hash\u password
中的
WP includes/pluggable.php
。这会让你开始走下坡路。实际使用的算法取决于您的设置。因此,当我使用WP nammed PasswordHash的加密类时,我遇到了一个问题,返回的方案从来都不相同,因此,如果在应用算法时返回的方案不相同,则无法匹配密码。。。有人有主意吗?对于像“test”这样的密码示例,当我应用WP的PasswordHash函数时,关联的加密语句从来都不一样。因此,无法检查密码是否与成员sql行中的方案匹配。。。这很正常?你发现你的WP版本使用的哈希算法了吗?我只是简单地研究了一下这一点——我发现他们过去使用MD5,但升级到Phpass(Bcrypt)。见我的更新上面。
$this->load->library("phpass", array("iteration_count_log2" => 8, "portable_hashes" => FALSE));
$check = $this->phpass->CheckPassword($this->input->post('password'), $u->password);
if($check) /*logged in*/
else /*wrong credentials.*/