加密与解密--charCodeAt()

// 三、自定义加密和解密方法


  //步骤,

        1.确定有一个算法实现字符与加密数值之间的转换

         2.定义一个密钥
  var toCode =function(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);
    b1=b%len;
    b=(b-b1)/len;
    b2=b%len;
    b=(b-b2)/len;
    b3=b%len;
   s+=a[b3]+a[b2]+a[b1];//根据这些余数值映射到密钥对应下标值得字符
    }
return s;

}
  var  fromCode=function(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(',')+")");//调用String.fromCharCode()算出对应的字符串
     return b;

}
  var s3="good Owen ,欢迎您";
  var s3=toCode(s3);
  console.log(s3.length);//"02V03303302S00W02703B02T03200W018L5USEMJ3C"
  s3=fromCode(s3);
  console.log(s3);//"good Owen ,欢迎您"
  

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值