zoukankan      html  css  js  c++  java
  • php 加密解密字符串

    /*********************************************************************
    函数名称:encrypt
    函数作用:加密解密字符串
    使用方法:
    加密     :encrypt('str','E','nowamagic');
    解密     :encrypt('被加密过的字符串','D','nowamagic');
    参数说明:
    $string   :需要加密解密的字符串
    $operation:判断是加密还是解密:E:加密   D:解密
    $key      :加密的钥匙(密匙);
     *********************************************************************/
        function encrypt($string, $operation, $key = 'WMqsfPpS9hwyoJnFP')
        {
            $key = md5($key);
            $key_length = strlen($key);
            $string = $operation == 'D' ? base64_decode($string) : substr(md5($string . $key), 0, 8) . $string;
            $string_length = strlen($string);
            $rndkey = $box = array();
            $result = '';
            for ($i = 0; $i <= 255; $i++) {
                $rndkey[$i] = ord($key[$i % $key_length]);
                $box[$i] = $i;
            }
            for ($j = $i = 0; $i < 256; $i++) {
                $j = ($j + $box[$i] + $rndkey[$i]) % 256;
                $tmp = $box[$i];
                $box[$i] = $box[$j];
                $box[$j] = $tmp;
            }
            for ($a = $j = $i = 0; $i < $string_length; $i++) {
                $a = ($a + 1) % 256;
                $j = ($j + $box[$a]) % 256;
                $tmp = $box[$a];
                $box[$a] = $box[$j];
                $box[$j] = $tmp;
                $result .= chr(ord($string[$i]) ^ ($box[($box[$a] + $box[$j]) % 256]));
            }
            if ($operation == 'D') {
                if (substr($result, 0, 8) == substr(md5(substr($result, 8) . $key), 0, 8)) {
                    return substr($result, 8);
                } else {
                    return '';
                }
            } else {
                return str_replace('=', '', base64_encode($result));
            }
        }
  • 相关阅读:
    Realtime crowdsourcing
    maven 常用插件汇总
    fctix
    sencha extjs4 command tools sdk
    首次吃了一颗带奶糖味的消炎药,不知道管用不
    spring mvc3 example
    ubuntu ati driver DO NOT INSTALL recommand driver
    yet another js editor on windows support extjs
    how to use springsource tools suite maven3 on command
    ocr service
  • 原文地址:https://www.cnblogs.com/whlives/p/4330976.html
Copyright © 2011-2022 走看看