字符串处理:加密解密

// 加密字符串
var toCode = function (str) {
    var key = '0123456789ABCDEFGHIJKLMNOPQRSTUVWWXYZ' ;
    var l = key.length ;
    var a = key.split('');
    console.log(str.length);
    var s = '' ;
    var b, b1, b2, b3;
    for(var i = 0; i < str.length; i ++){
        b = str.charCodeAt(i) ;
        b1 = b % l;
        b = (b - b1) / l;
        b2 = b % l;
        b = (b-b2)/l;
        b3 = b%l;
        s += a[b3] +a[b2] +a[b1];  /* 每一个余数都被映射成了key中的一个字符  并且还先把b3存储到了前面  因为是按照字符串对应的顺序来加密解密的 */
    }
    return s;

}
// 解密字符串
var fromCode = function(str){
    var key = '0123456789ABCDEFGHIJKLMNOPQRSTUVWWXYZ' ;
    var l = key.length ;  //这个算法的精妙之处在于余数不会大于除数,所以任何一个余数都可以在key中找到映射而不会超出长度
    var b, b1, b2, b3, d = 0, s;
    s = new Array(Math.floor(str.length/3));console.log(s.length);
    b = s.length;
    for(var i = 0;i < b; i ++){
        b3 = key.indexOf(str.charAt(d)) 
        ;d++
        b2 =key.indexOf(str.charAt(d)) ;
        ;d++
        b1 =key.indexOf(str.charAt(d)) ;
        ;d++
        s[i] = b3 * l * l +b2 * l + b1;
    }
    b = eval("String.fromCharCode(" + s.join(',')+")");
    return b
}
var s = 'JavaScripts 中国';
s = toCode(s);
console.log(s);
s = fromCode(s);
console.log(s);
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值