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代码
Oct 30 Javascript
jQuery Ajax异步处理Json数据详解
Nov 05 Javascript
JavaScript中的Math.atan2()方法使用详解
Jun 15 Javascript
自定义Angular指令与jQuery实现的Bootstrap风格数据双向绑定的单选与多选下拉框
Dec 12 Javascript
文件上传插件SWFUpload的使用指南
Nov 29 Javascript
Javascript之面向对象--方法
Dec 02 Javascript
基于JQuery及AJAX实现名人名言随机生成器
Feb 10 Javascript
jquery mobile实现可折叠的导航按钮
Mar 11 Javascript
layui前段框架日期控件使用方法详解
May 19 Javascript
vue写h5页面的方法总结
Feb 12 Javascript
基于vue-cli3和element实现登陆页面
Nov 13 Javascript
使用JS location实现搜索框历史记录功能
Dec 23 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
真正的ZIP文件操作类(php)
2007/07/21 PHP
删除数组元素实用的PHP数组函数
2008/08/18 PHP
PHP $_SERVER详解
2009/01/16 PHP
PHP file_exists问题杂谈
2012/05/07 PHP
php中$_POST与php://input的区别实例分析
2015/01/07 PHP
在JavaScript中用getMinutes()方法返回指定的分时刻
2015/06/10 Javascript
javascript实现下班倒计时效果的方法(可桌面通知)
2015/07/10 Javascript
Javascript的表单验证-提交表单
2016/03/18 Javascript
深入理解Node.js 事件循环和回调函数
2016/11/02 Javascript
实现隔行换色效果的两种方式【实用】
2016/11/27 Javascript
详解js中常规日期格式处理、月历渲染和倒计时函数
2016/12/28 Javascript
详解vue2.0组件通信各种情况总结与实例分析
2017/03/22 Javascript
jQuery设置图片等比例缩小的方法
2017/04/29 jQuery
js构造函数创建对象是否加new问题
2018/01/22 Javascript
Vue2.0 事件的广播与接收(观察者模式)
2018/03/14 Javascript
详解element-ui日期时间选择器的日期格式化问题
2019/04/08 Javascript
微信h5静默和非静默授权获取用户openId的方法和步骤
2020/06/08 Javascript
在antd Table中插入可编辑的单元格实例
2020/10/28 Javascript
python静态方法实例
2015/01/14 Python
python寻找list中最大值、最小值并返回其所在位置的方法
2018/06/27 Python
python3人脸识别的两种方法
2019/04/25 Python
Python numpy线性代数用法实例解析
2019/11/15 Python
python Shapely使用指南详解
2020/02/18 Python
python rolling regression. 使用 Python 实现滚动回归操作
2020/06/08 Python
python算的上脚本语言吗
2020/06/22 Python
python如何设置静态变量
2020/09/07 Python
浅谈pc和移动端的响应式的使用
2019/01/03 HTML / CSS
法国创作个性化T恤衫和其他定制产品平台:Tostadora
2018/04/08 全球购物
项目副经理岗位职责
2013/12/30 职场文书
2014大学生批评与自我批评思想汇报
2014/09/21 职场文书
捐助倡议书
2015/01/19 职场文书
绍兴鲁迅故居导游词
2015/02/09 职场文书
大四学生个人总结
2015/02/15 职场文书
大学生社会实践活动总结报告
2015/05/06 职场文书
导游词之黄帝陵景区
2019/09/16 职场文书
小学三年级作文之写景
2019/11/05 职场文书