JS 加密算法带秘钥
2017-11-15 00:00
295 查看
var mkey = "姚林tao"; var text = "wo说了一段话。!~"; var jiamied = encrypted(mkey,text); var jiemied = decrypted(mkey,jiamied); console.error(jiamied); console.error(jiemied); /** * 根据key加密 */ function encrypted(key,str){ //秘钥-- ^ 运算后,为补码。 秘钥会转化成为1 0 二进制数。 var binaryKey = str2Binary(key); var total2str = ""; for (var i = 0; i < str.length; i++) { var num10 = str.charCodeAt(i)^binaryKey; ///< 以10进制的整数返回 某个字符 的unicode编码 var str2 = num10.toString(2); ///< 将10进制数字 转换成 2进制字符串 if( total2str == "" ){ total2str = str2; }else{ total2str = total2str + " " + str2; } } // console.log("加密后:" + total2str); return total2str; } /** * 根据key解密 */ function decrypted(key,str){ //秘钥-- ^ 运算后,为补码。 秘钥会转化成为1 0 二进制数。 var binaryKey = str2Binary(key); var goal = ""; var arr = str.split(' '); for(var i=0; i < arr.length; i++){ var str2 = arr[i]; var num10 = parseInt(str2, 2); ///< 2进制字符串转换成 10进制的数字 goal += String.fromCharCode(num10^binaryKey); ///< 将10进制的unicode编码, 转换成对应的unicode字符 } // console.log('解密后:'+ goal ); return goal; } /** * 字符串转二进制 */ function str2Binary(str){ var total2str = ""; for (var i = 0; i < str.length; i++) { var num10 = str.charCodeAt(i); ///< 以10进制的整数返回 某个字符 的unicode编码 var str2 = num10.toString(2); ///< 将10进制数字 转换成 2进制字符串 if( total2str == "" ){ total2str = str2; }else{ total2str = total2str + "" + str2; } } return parseInt(total2str, 2); }
相关文章推荐
- 201602171037_《Js地理位置(摘)》
- 关于js页面时间判断,和一些杂项
- 【京东详情页】——原生js学习之匿名函数
- 原生js+css实现重力模拟弹跳系统的登录页面
- js判断是否为IE浏览器
- JS截取字符串方法集合
- D3.js之折线图动画
- js实现动态改变字体大小代码
- JS弹出一个相对位置的浮动层
- 脚本吧 - 幻宇工作室用到js,超强推荐base.js
- JS 常用函数 -----------------慢慢添加(统一ie与ff不同处理方法)
- js实现数字相加
- 微信分享js代码(转载)
- js实现类似jquery基础功能 简单选择器/事件/属性
- js判断是否在微信浏览器中打开
- js倒计时和js时钟
- 转载 ---原生和H5交互挺多的,最近也有朋友再问。这儿我写个简单的例子给大家 直接贴代码 js的
- JS手撸数据结构系列(四) ——Prim算法与迷宫生成
- JS面向对象的继承三种方法:原型继承,原型冒充继承,复制继承
- js图片延迟加载(Lazyload)三种实现方式