JS实现的RC4加密算法示例


Posted in Javascript onAugust 16, 2018

本文实例讲述了JS实现的RC4加密算法。分享给大家供大家参考,具体如下:

RC4是一种简单的对称加密算法,在文本加密,通信加密等场景应用非常广泛。

在Web中可以用来对本地存储数据进行加密,比如存储cookie中的用户名和密码,敏感信息等。

以下是本人根据其思想基于JS实现的算法。

//var ctext = rc4("我是明文","我是密码");
//var text = rc4(ctext, "我是密码");
function rc4(data, key) {
  var seq = Array(256); //int
  var das = Array(data.length); //code of data
  for (var i = 0; i < 256; i++) {
    seq[i] = i;
    var j = (j + seq[i] + key.charCodeAt(i % key.length)) % 256;
    var temp = seq[i];
    seq[i] = seq[j];
    seq[j] = temp;
  }
  for (var i = 0; i < data.length; i++) {
    das[i] = data.charCodeAt(i)
  }
  for (var x = 0; x < das.length; x++) {
    var i = (i + 1) % 256;
    var j = (j + seq[i]) % 256;
    var temp = seq[i];
    seq[i] = seq[j];
    seq[j] = temp;
    var k = (seq[i] + (seq[j] % 256)) % 256;
    das[x] = String.fromCharCode(das[x] ^ seq[k]);
  }
  return das.join('');
}
Javascript 相关文章推荐
jquery api参考 visualjquery 中国线路 速度快
Nov 30 Javascript
js 取时间差去掉周六周日实现代码
Dec 25 Javascript
JS刷新框架外页面七种实现代码
Feb 18 Javascript
我的Node.js学习之路(二)NPM模块管理
Jul 06 Javascript
JavaScript中的anchor()方法使用详解
Jun 08 Javascript
jQuery validate+artdialog+jquery form实现弹出表单思路详解
Apr 18 Javascript
angular和BootStrap3实现购物车功能
Jan 25 Javascript
es6+angular1.X+webpack 实现按路由功能打包项目的示例
Aug 16 Javascript
记React connect的几种写法(小结)
Sep 18 Javascript
JS实现移动端在线签协议功能
Aug 22 Javascript
微信小程序如何实现精确的日期时间选择器
Jan 21 Javascript
JavaScript通如何过RGraph实现动态仪表盘
Oct 15 Javascript
vue2.0父子组件间传递数据的方法
Aug 16 #Javascript
Vue2.0中三种常用传值方式(父传子、子传父、非父子组件传值)
Aug 16 #Javascript
bootstrap实现点击删除按钮弹出确认框的实例代码
Aug 16 #Javascript
浅谈Vue.js路由管理器 Vue Router
Aug 16 #Javascript
layui问题之模拟select点击事件的实例讲解
Aug 15 #Javascript
深入理解Vue router的部分高级用法
Aug 15 #Javascript
JS打印彩色菱形的实例代码
Aug 15 #Javascript
You might like
MYSQL环境变量设置方法
2007/01/15 PHP
常用js脚本
2006/12/03 Javascript
javascript 字符串连接的性能问题(多浏览器)
2008/11/18 Javascript
js onpropertychange输入框 事件获取属性
2009/03/26 Javascript
JavaScript 动态添加表格行 使用模板、标记
2009/10/24 Javascript
取选中的radio的值
2010/01/11 Javascript
Js 中debug方式
2010/02/07 Javascript
Javascript对象中关于setTimeout和setInterval的this介绍
2012/07/21 Javascript
js 得到文件后缀(通过正则实现)
2013/07/08 Javascript
JavaScript文档碎片操作实例分析
2015/12/12 Javascript
Javascript获取图片原始宽度和高度的方法详解
2016/09/20 Javascript
jQuery基于xml格式数据实现模糊查询及分页功能的方法
2016/12/25 Javascript
Bootstrap Tree View简单而优雅的树结构组件实例解析
2017/06/15 Javascript
Vue用v-for给src属性赋值的方法
2018/03/03 Javascript
原生js检测页面加载完毕的实例
2018/09/11 Javascript
Vue解析剪切板图片并实现发送功能
2020/02/04 Javascript
jQuery 添加元素和删除元素的方法
2020/07/15 jQuery
vue中的.$mount('#app')手动挂载操作
2020/09/02 Javascript
一个基于flask的web应用诞生 记录用户账户登录状态(6)
2017/04/11 Python
Python中模块与包有相同名字的处理方法
2017/05/05 Python
Django使用unittest模块进行单元测试过程解析
2019/08/02 Python
Pycharm远程调试原理及具体配置详解
2019/08/08 Python
关于numpy.where()函数 返回值的解释
2019/12/06 Python
python--shutil移动文件到另一个路径的操作
2020/07/13 Python
Django多数据库联用实现方法解析
2020/11/12 Python
利用python为PostgreSQL的表自动添加分区
2021/01/18 Python
TensorFlow2.0使用keras训练模型的实现
2021/02/20 Python
如何用python爬取微博热搜数据并保存
2021/02/20 Python
师范生实习个人的自我评价
2013/09/28 职场文书
健康家庭事迹材料
2014/05/02 职场文书
演讲稿的写法
2014/05/19 职场文书
电子商务优秀毕业生求职信
2014/07/11 职场文书
庆祝儿童节标语
2014/10/09 职场文书
2015年节能降耗工作总结
2015/05/22 职场文书
python爬取新闻门户网站的示例
2021/04/25 Python
Redis中key的过期删除策略和内存淘汰机制
2022/04/12 Redis