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 相关文章推荐
js 内存释放问题
Apr 25 Javascript
js变量以及其作用域详解
Jul 18 Javascript
JS操作数据库的实例代码
Oct 17 Javascript
用jquery等比例控制图片宽高的具体实现
Jan 28 Javascript
javascript处理a标签超链接默认事件的方法
Jun 29 Javascript
jQuery基于ajax()使用serialize()提交form数据的方法
Dec 08 Javascript
JavaScript错误处理和堆栈追踪详解
Apr 18 Javascript
使用JavaScript实现一个小程序之99乘法表
Sep 21 Javascript
laydate日历控件使用方法详解
Nov 20 Javascript
使用jquery DataTable和ajax向页面显示数据列表的方法
Aug 09 jQuery
vue移动端项目缓存问题实践记录
Oct 29 Javascript
微信小程序实现的五星评价功能示例
Apr 25 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
php实现从ftp服务器上下载文件树到本地电脑的程序
2009/02/10 PHP
PHP的5个安全措施小结
2012/07/17 PHP
php查看网页源代码的方法
2015/03/13 PHP
thinkphp3.2.3 分页代码分享
2016/07/28 PHP
PHP实现的多维数组去重操作示例
2018/07/21 PHP
基于PHP实现邮箱验证激活过程详解
2020/10/28 PHP
javascript offsetX与layerX区别
2010/03/12 Javascript
Javascript 类型转换方法
2010/10/24 Javascript
解决jquery异步按一定的时间间隔刷新问题
2012/12/10 Javascript
jQuery获得内容和属性方法及示例
2013/12/02 Javascript
node.js中的socket.io的广播消息
2014/12/15 Javascript
由浅入深剖析Angular表单验证
2016/07/14 Javascript
微信小程序组件 contact-button(客服会话按钮)详解及实例代码
2017/01/10 Javascript
JavaScript使用正则表达式获取全部分组内容的方法示例
2017/01/17 Javascript
Angular.js实现多个checkbox只能选择一个的方法示例
2017/02/24 Javascript
nodejs+websocket实时聊天系统改进版
2017/05/18 NodeJs
jQuery实现的页面遮罩层功能示例【测试可用】
2017/10/14 jQuery
vue.js轮播图组件使用方法详解
2018/07/03 Javascript
JavaScript创建对象方式总结【工厂模式、构造函数模式、原型模式等】
2018/12/19 Javascript
js实现坦克大战游戏
2020/02/24 Javascript
[49:29]LGD vs Winstrike 2018国际邀请赛小组赛BO2 第一场 8.17
2018/08/18 DOTA
[00:15]TI9地铁玩家打卡
2019/08/11 DOTA
利用python将json数据转换为csv格式的方法
2018/03/22 Python
PyQt5实现QLineEdit添加clicked信号的方法
2019/06/25 Python
python爬虫刷访问量 2019 7月
2019/08/01 Python
python游戏开发的五个案例分享
2020/03/09 Python
python数据库操作mysql:pymysql、sqlalchemy常见用法详解
2020/03/30 Python
解决keras,val_categorical_accuracy:,0.0000e+00问题
2020/07/02 Python
Python使用cn2an实现中文数字与阿拉伯数字的相互转换
2021/03/02 Python
荷兰牛仔裤网上商店:Jeans Centre
2018/04/03 全球购物
利用异或运算实现两个无符号数的加法运算
2013/12/20 面试题
数据库方面面试题
2012/04/22 面试题
毕业生就业自荐信
2013/12/04 职场文书
教育实习指导教师评语
2014/12/31 职场文书
资料员岗位职责
2015/02/10 职场文书
Python词云的正确实现方法实例
2021/05/08 Python