字符串加密解密

张开发
2026/4/19 3:51:24 15 分钟阅读

分享文章

字符串加密解密
//登陆注册密码加密 stringToBase64(str) { //将字符串转换为base64编码 var t ABCDEFGHJKMNPQRSTWXYZabcdefhijkmnprstwxyz2345678; let regexp //g; // 全局匹配所有o字母 let a t.length; let n ; let n1 ; for (let i 0; i 10; i) n t.charAt(Math.floor(Math.random() * a)); for (let i 0; i 10; i) n1 t.charAt(Math.floor(Math.random() * a)); return ( n btoa( encodeURIComponent(str kn0cvgz).replace(/%([0-9A-F]{2})/g, function toSolidBytes(match, p1) { return String.fromCharCode(0x p1); }) ).replace(//g, ) n1 ); }, //登陆注册密码解密与 stringToBase64 配对 base64ToString2(str) { // 非字符串或长度不足加密串至少有前后各10位内容时直接返回原值 if (typeof str ! string || str.length 20) return str; try { // 去掉前后各 10 位随机字符 const core str.slice(10, str.length - 10); // 还原被去掉的 填充补齐 base64 长度为 4 的倍数 const padded core .slice(0, (4 - (core.length % 4)) % 4); // base64 解码 const decoded decodeURIComponent( atob(padded) .split() .map(function(c) { return % (00 c.charCodeAt(0).toString(16)).slice(-2); }) .join() ); // 去掉加密时拼接的盐值后缀 return decoded.endsWith(kn0cvgz) ? decoded.slice(0, -7) : decoded; } catch (e) { return str; // 解密失败则返回原值 } },

更多文章