首页 > 编程语言 >PHP加密JS解密【转】

PHP加密JS解密【转】

时间:2022-08-15 16:59:03浏览次数:84  
标签:code string b64 base64 解密 JS key PHP data

转载地址:https://www.fengjinwei.com/blog-1139759.html
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;
}

标签:code,string,b64,base64,解密,JS,key,PHP,data
From: https://www.cnblogs.com/aixiu/p/16588831.html

相关文章

  • KL散度和JS散度
    KL散度(相对熵)\(KL(P||Q)=\sum{p(x)}log\frac{p(x)}{q(x)}\)\(KL(Q||P)=\sum{q(x)}log\frac{q(x)}{p(x)}\)用来衡量两个分布之间的差异,交叉熵\(-p(x)log(q(x))\)减去信息......
  • php 导出pdf
    1、接口生成查询参数$exportCS=urlSafeB64Encode(msgpack_pack(['key'=>'value']))2、解析查询参数,获取查询数据结果$condition=msgpack_unpack(urlSafeB64D......
  • thinkphp6中关于时间的查询方法
    whereTime用法一:查询今天的数据$list=$userModel->whereTime('add_time','today')->select();同理,替换参数today后可以查询昨天(yesterday)、本周(week)、下周(last......
  • jsp_概念和原理
    jsp_概念概念:javaserverPages:java服务器端页面可以理解为:一个特殊的页面其中既可以指定定义html标签又可以定义java代码用于简化书写jsp和HTMl的区别HTML......
  • JSP_指令_概述和JSP_指令_page指令
    指令:作用:用于配置JSP页面,导入资源文件格式:<%@指令名称 属性名1= 属性值1 属性名2= 属性值2...%>分类:page: 配置JSP页面的......
  • iOS/Android原生App与js优雅交互
    无论Android还是iOS,Webview都具有与js交互的能力,这使得我们可以利用混合开发(原生+h5)满足相对复杂的业务需求。但是由于Android和iOS系统的差异,原生App在与js交互时,js需要......
  • js中各种事件监听
    点击事件$("#sydcdel_"+sysTime).click(function(){//删除的时候校验是否有已投入的相关信息,如果有则不能直接删除varpihao......
  • MVC_jsp演变历史以及MVC详解
    MVC_jsp演变历史jsp演变历史1、早期只有servlet,只能使用response输出标签数据,非常麻烦2、后来有jsp,简化了Servlet的开发,如果过度使用jsp,在jsp中即写大量的java......
  • HTML 引用 tracking.js 调取摄像头取人脸 Demo
    <!doctypehtml><html><head><metacharset="utf-8"><title>基于tracking的取人脸</title><scriptsrc="static/js/util/jquery.min.js"></script>......
  • json.tool模块
    [root@mysql-host1~]#cat1.json{"version":"0.1","database":"app01","table":"tb1","type":"insert","ts":1659678099,"time_zone":"Asia/Shanghai",&q......