PHP加密JS解密 base64

PHP加密:

复制代码
function strencode2($string) {   
    $string = base64_encode ( $string );   
    $key = '123456';   
    $len = strlen ( $key );   
    $code = '';   
    for($i = 0; $i < strlen ( $string ); $i ++) {   
        $k = $i % $len;   
        $code .= $string [$i] ^ $key [$k];   
    }   
    return base64_encode ( $code );   
}    
echo strencode2('hello world');//得到加密字符串UHVlR1dxCVVXBgxPU3ViCQ==
复制代码

JavaScript解密:

复制代码
var string = 'UHVlR1dxCVVXBgxPU3ViCQ==';
key = '123456';   
string = base64_decode(string);   
len = key.length;   
code = '';   
for (i = 0; i < string.length; i++) {   
    k = i % len;   
    code += String.fromCharCode(string.charCodeAt(i) ^ key.charCodeAt(k));   
}   
alert("解密结果="+base64_decode(code));//base64解密函数
function base64_decode(data) {
    var b64 = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=";
    var o1, o2, o3, h1, h2, h3, h4, bits, i = 0,
    ac = 0,
    dec = "",
    tmp_arr = [];
    if (!data) {
        return data;
    }
    data += '';
    do { // unpack four hexets into three octets using index points in b64
        h1 = b64.indexOf(data.charAt(i++));
        h2 = b64.indexOf(data.charAt(i++));
        h3 = b64.indexOf(data.charAt(i++));
        h4 = b64.indexOf(data.charAt(i++));
        bits = h1 << 18 | h2 << 12 | h3 << 6 | h4;
        o1 = bits >> 16 & 0xff;
        o2 = bits >> 8 & 0xff;
        o3 = bits & 0xff;
        if (h3 == 64) {
            tmp_arr[ac++] = String.fromCharCode(o1);
        } else if (h4 == 64) {
            tmp_arr[ac++] = String.fromCharCode(o1, o2);
        } else {
            tmp_arr[ac++] = String.fromCharCode(o1, o2, o3);
        }
    } while (i < data.length);
    dec = tmp_arr.join('');
    return dec;
}
复制代码

 

posted @   mingruqi  阅读(461)  评论(0编辑  收藏  举报
编辑推荐:
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
阅读排行:
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· 单线程的Redis速度为什么快?
· 展开说说关于C#中ORM框架的用法!
· Pantheons:用 TypeScript 打造主流大模型对话的一站式集成库
历史上的今天:
2018-08-21 【Android开源库】美团等APP城市选择
点击右上角即可分享
微信分享提示