JS本地加密解密字符串

js前端本地自己加密解密

加密:

// 字符串加密       
function encryptionCode (str) {  //加密字符串
    //定义密钥,字母和数字
    var key = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ";
    var len = key.length;  //获取密钥的长度
    var a = key.split("");  //把密钥字符串转换为字符数组
    var s = "",b, b1, b2, b3;  //定义临时变量
    for (var i = 0; i <str.length; i ++) {  //遍历字符串
         b = str.charCodeAt(i);  //逐个提取每个字符,并获取Unicode编码值
         b1 = b % len;  //求Unicode编码值得余数
         b = (b - b1) / len;  //求最大倍数
         b2 = b % len;  //求最大倍数的于是
         b = (b - b2) / len;  //求最大倍数
         b3 = b % len;  //求最大倍数的余数
         s += a[b3] + a[b2] + a[b1];  //根据余数值映射到密钥中对应下标位置的字符
    }
    return s;  //返回这些映射的字符
}

解密:

// 字符串解密
        function decryptCode(str) {
            //定义密钥,字母和数字
            var key = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ";
            var len = key.length;  //获取密钥的长度
            var b, b1, b2, b3, d = 0, s;  //定义临时变量
            s = new Array(Math.floor(str.length / 3));  //计算加密字符串包含的字符数,并定义数组
            b = s.length;  //获取数组的长度
            for (var i = 0; i < b; i ++) {  //以数组的长度循环次数,遍历加密字符串
                b1 = key.indexOf(str.charAt(d));  //截取周期内第一个字符串,计算在密钥中的下标值
                d ++;
                b2 = key.indexOf(str.charAt(d));  //截取周期内第二个字符串,计算在密钥中的下标值
                d ++;
                b3 = key.indexOf(str.charAt(d));  //截取周期内第三个字符串,计算在密钥中的下标值
                d ++;
                s[i] = b1 * len * len + b2 * len + b3  //利用下标值,反推被加密字符的Unicode编码值
            }
            b = eval("String.fromCharCode(" + s.join(',') + ")");  // 用fromCharCode()算出字符串
            return b ;  //返回被解密的字符串
        }

使用:

var code = 'admin12345';
var encryptionCodeValue = encryptionCode(code);  // 字符串加密操作
console.log(encryptionCodeValue)

var decryptCodeValue = decryptCode(toCodeValue);  // 字符串解密操作
console.log(decryptCodeValue)

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值