最近在修一个程序,对接的是杰奇的数据库,它有个明显的问题就是登录注册是失效的,这个问题在1.X的版本并不会出现,我折腾了一下发现是杰奇2.4的密码字段加密规则有了变化,导致了自然而然出现的问题。所以,研究一下新的密码加密的机制,也就有了一些必要的感觉。毕竟最近还在学习mui开发,感觉不搞个app出来对不起自己唉,但是app的话又要拜托朋友写接口,登录注册本就是个大问题啊。
呼~
依旧是老规矩,如果感觉不太对,这篇文章就会删除。
我只是基于网上流传的版本进行兴趣爱好的研究,如果大家要正规做站请尽量支持官方正版,那个最安全,也最靠谱。
折腾开始
首先我找了一下杰奇2.4的密码是怎么加密的。
比如class/user.php文件,存在如下代码:
public function encryptPass($pass)
{
$salt = $this->getVar('salt', 'n');
if (!empty($salt)) {
return md5(md5($pass) . $salt);
} else {
return md5($pass);
}
}
可以很明显的看到,密码字段的加密叠了两层,在第一次加密的基础上,接合一个$salt字段,再进行一次md5。
但是我们打开杰奇2.3和以下的版本看,代码简单的吓人,是这样的:
public function encryptPass($pass)
{
retu