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 相关文章推荐
9个javascript语法高亮插件 推荐
Jul 18 Javascript
基于OO的动画附加插件,可以实现弹跳、渐隐等动画效果 分享
Jun 24 Javascript
jquery插件pagination实现无刷新ajax分页
Sep 30 Javascript
Javascript中的Prototype到底是什么
Feb 16 Javascript
JS实现的颜色实时渐变效果完整实例
Mar 25 Javascript
JavaScript函数节流和函数防抖之间的区别
Feb 15 Javascript
利用forever和pm2部署node.js项目过程
May 10 Javascript
vue和webpack打包项目相对路径修改的方法
Jun 15 Javascript
使用vue-router为每个路由配置各自的title
Jul 30 Javascript
jQuery实现每日秒杀商品倒计时功能
Sep 06 jQuery
微信小程序 自定义弹窗实现过程(附代码)
Dec 05 Javascript
PHP 502bad gateway原因及解决方案
Nov 13 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
WordPress判断用户是否登录的代码
2011/03/17 PHP
sql注入与转义的php函数代码
2013/06/17 PHP
PHP 实现手机端APP支付宝支付功能
2018/06/07 PHP
设定php简写功能的方法
2019/11/28 PHP
top.location.href 没有权限 解决方法
2008/08/05 Javascript
ExtJS 2.0实用简明教程 之Ext类库简介
2009/04/29 Javascript
ExtJS 入门
2010/10/29 Javascript
初窥JQuery(二) 事件机制(1)
2010/11/25 Javascript
用JQuery实现表格隔行变色和突出显示当前行的代码
2012/02/10 Javascript
使用JavaScript动态设置样式实现代码(2)
2013/01/25 Javascript
JQuery中DOM事件冒泡实例分析
2015/06/13 Javascript
JavaScript判断DIV内容是否为空的方法
2016/01/29 Javascript
JS组件系列之Bootstrap table表格组件神器【二、父子表和行列调序】
2016/05/10 Javascript
JavaScript实现数组降维详解
2017/01/05 Javascript
Vue异步组件使用详解
2017/04/08 Javascript
JS 仿支付宝input文本输入框放大组件的实例
2017/11/14 Javascript
node实现生成带参数的小程序二维码并保存到本地功能示例
2018/12/05 Javascript
JS this关键字在ajax中使用出现问题解决方案
2020/07/17 Javascript
[16:21]教你分分钟做大人:圣堂刺客
2014/12/03 DOTA
python实现将元祖转换成数组的方法
2015/05/04 Python
Python压缩解压缩zip文件及破解zip文件密码的方法
2015/11/04 Python
使用Python读写及压缩和解压缩文件的示例
2016/07/08 Python
详解python3中的真值测试
2018/08/13 Python
python pands实现execl转csv 并修改csv指定列的方法
2018/12/12 Python
python实现浪漫的烟花秀
2019/01/30 Python
matlab灰度图像调整及imadjust函数的用法详解
2020/02/27 Python
利用CSS3实现文字折纸效果实例代码
2018/07/10 HTML / CSS
美国牛仔品牌:True Religion
2018/11/16 全球购物
语文教育专业应届生求职信
2013/11/23 职场文书
汽车运用工程专业毕业生推荐信
2013/12/25 职场文书
军训拉歌口号
2014/06/13 职场文书
2013年最新自荐信范文
2014/06/23 职场文书
军人离婚协议书样本
2014/10/21 职场文书
2015年国庆节活动总结
2015/03/23 职场文书
2015入党自传格式范文
2015/06/26 职场文书
Nginx报404错误的详细解决方法
2022/07/23 Servers