PHP加密JS解密 base64
2023-09-27 14:21:17 时间
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; }
相关文章
- 在浏览器中运行 TensorFlow.js 来训练模型并给出预测结果(Iris 数据集)
- [转]JS脚本抢腾讯云学生1元代金券
- js倒计时-倒计输入的时间
- 【FAQ】【DevEco Studio】DevEco npm install ets/js 会长时间卡住
- JS实现数组去重的常见方法
- PHP实现无符号右移(js中的 >>>)
- 多级勾选框联动核心js
- [js高手之路] html5 canvas系列教程 - 线条样式(lineWidth,lineCap,lineJoin,setLineDash)
- 从测试数据来看Node.js和Java EE的性能区别
- 兔子--html,js,php,ASP,ASP.NET,JSP的关系
- js获取当前日期,并计算几天后日期
- java,php,js;AES 互通加解密