最新消息:Excel无乱码转CSV,由于工作原因很少更新博客和回复大家的评论,非常抱歉。

Magento 是采用伪Hash加密方式

Magento 是采用Hash加密方式的,今天给某个项目换成别的网站系统。发现与Magento的加密方式不一样,找到Magento的加密方式与验证方式,并分离出来与大家分享。

<?php
/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
$password    = 'abcd';
$hash = 'bf8d0ec1c358da673b6b841e0c775355:xz';
echo getHash($password,2).'<br>'; //hash 加密
echo validateHash($password,$hash); //hash 加密验证
function getRandomString($len, $chars=null)
{
    if (is_null($chars)) {
        $chars = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789";
    }
    mt_srand(10000000*(double)microtime());
    for ($i = 0, $str = '', $lc = strlen($chars)-1; $i < $len; $i++) {
        $str .= $chars[mt_rand(0, $lc)];
    }
    return $str;
}
function getHash($password, $salt=false)
{
    if (is_integer($salt)) {
        $salt = getRandomString($salt);
    }
    return $salt===false ? md5($password) : md5($salt.$password).':'.$salt;
}
/*
 * 验证密码
 @param string $password
* @param string $hash
* @return bool
 */
function validateHash($password,$hash)
{
    $hashArr = explode(':', $hash);
    switch (count($hashArr)) {
        case 1:
            return getHash($password) === $hash;
        case 2:
            return getHash($hashArr[1] . $password) === $hashArr[0];
    }
    return 'Invalid hash.';
}
?>

Magento 是采用Hash加密方式

转载请注明:嗨酷哥,有你更酷! » Magento 是采用伪Hash加密方式

与本文相关文章

发表我的评论

取消评论
表情 插代码

Hi,您需要填写昵称和邮箱!

  • 必填项
  • 必填项

网友评论3

  1. 讲解的不是太明白啊,比如如果我忘记admin的密码,但是我能查看到加密后的数据的话,我如何将这个加密的数据转成明文呢?是通过md5吗?还是?

    自主创业2015-01-26 17:09 回复
  2. 博主太好人了~
    非常感谢你

    哈秀时尚2013-08-14 18:19 回复
  3. 不错不错,很少有这么无私分享的人啦,顶起, :mrgreen:

    TTjj2013-05-03 17:51 回复