PHP可逆加密算法

时间:2017-05-17作者:klpeng分类:PHP浏览:1708评论:0

提供一个php的简单可逆加密算法

/**
 * 可逆加密算法:加密
 * @param String $string 传入待加密字符串
 */
function k_encode($str = '') {
    $key = base64_encode(Yaf_Registry::get("config")->user->encryt_key);  //这里我是把key写在YAF框架的配置文件里,按自己的项目修改
    $str = base64_encode($str);
    strlen($key) >= strlen($str) ? $mix = ceil(strlen($key) / strlen($str)) : $mix = ceil(strlen($str) / strlen($key));
    $temp = str_split($str);
    foreach (str_split($key) as $k => $v) {
        isset($temp[$k * $mix]) && $temp[$k * $mix].=$v;
    }
    return str_replace(array("=", "+", "/"), array("i00i", "k00k", "z00z"), implode($temp));
}

/**
 * 可逆加密算法:解密
 * @param String $string 传入待解密字符串
 */
function k_decode($str = '') {
    $key = base64_encode(Yaf_Registry::get("config")->user->encryt_key);
    $str = str_replace(array("i00i", "k00k", "z00z"), array("=", "+", "/"), $str);
    strlen($key) >= strlen($str) ? $mix = ceil(strlen($key) / strlen($str)) : $mix = ceil(strlen($str) / strlen($key));
    $temp = str_split($str);
    for ($k = 0; $k < strlen($key); $k++) {
        if (!isset($temp[$k * $mix + 1]))
            break;
        unset($temp[$k * $mix + 1]);
    }
    return base64_decode(implode($temp));
}
打赏
文章版权声明:除非注明,否则均为彭超的博客原创文章,转载或复制请以超链接形式并注明出处。
相关推荐

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

猜你喜欢