Js 字符串加密、解密


       // 字符串加密
function toCode (str) { //加密字符串 //定義密鑰,36個字母和數字 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 fromCode (str) {
            //定義密鑰,36個字母和數字
            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 = '18154351678';
var toCodeValue = toCode(code);  // 字符串加密操作
console.log(toCodeValue)

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

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM