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 相关文章推荐
Javascript this关键字使用分析
Oct 21 Javascript
jQuery实现悬浮在右上角的网页客服效果代码
Oct 24 Javascript
javascript入门教程基础篇
Nov 16 Javascript
BootStrap Progressbar 实现大文件上传的进度条的实例代码
Jun 27 Javascript
jQuery设置聚焦并使光标位置在文字最后的实现方法
Aug 02 Javascript
angularjs 表单密码验证自定义指令实现代码
Oct 27 Javascript
微信小程序之ES6与事项助手的功能实现
Nov 30 Javascript
vue.js开发环境搭建教程
May 04 Javascript
vue2.0 父组件给子组件传递数据的方法
Jan 15 Javascript
JavaScript模板引擎实现原理实例详解
Dec 14 Javascript
详解微信小程序网络请求接口封装实例
May 02 Javascript
如何优雅地在Node应用中进行错误异常处理
Nov 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
极典R601SW收音机
2021/03/02 无线电
php压缩HTML函数轻松实现压缩html/js/Css及注意事项
2013/01/27 PHP
VB中的RasEnumConnections函数返回632错误解决方法
2014/07/29 PHP
PHP XML Expat解析器知识点总结
2019/02/15 PHP
javascript 学习之旅 (3)
2009/02/05 Javascript
jquery 关键字“拖曳搜索”之“拖曳”以及 图片“提示自适应放大”效果 的实现
2010/04/18 Javascript
高性能Javascript笔记 数据的存储与访问性能优化
2012/08/02 Javascript
javascript批量修改文件编码格式的方法
2015/01/27 Javascript
在Javascript中处理数组之toSource()方法的使用
2015/06/09 Javascript
js实现接收表单的值并将值拼在表单action后面的方法
2015/11/23 Javascript
JavaScript中三个等号和两个等号的区别(== 和 ===)浅析
2016/09/22 Javascript
基于jQuery实现的查看全文功能【实用】
2016/12/11 Javascript
基于layui table返回的值的多级嵌套的解决方法
2019/09/19 Javascript
node.js使用stream模块实现自定义流示例
2020/02/13 Javascript
浅谈vue的第一个commit分析
2020/06/08 Javascript
Python利用Beautiful Soup模块创建对象详解
2017/03/27 Python
Python2.7基于笛卡尔积算法实现N个数组的排列组合运算示例
2017/11/23 Python
python cs架构实现简单文件传输
2020/03/20 Python
详解如何为eclipse安装合适版本的python插件pydev
2018/11/04 Python
Python中新式类与经典类的区别详析
2019/07/10 Python
Pytorch 卷积中的 Input Shape用法
2020/06/29 Python
Python的控制结构之For、While、If循环问题
2020/06/30 Python
python通用数据库操作工具 pydbclib的使用简介
2020/12/21 Python
python sleep和wait对比总结
2021/02/03 Python
HTML5 weui使用笔记
2019/11/21 HTML / CSS
.net工程师笔试题
2012/06/09 面试题
国际商务专业学生个人的自我评价
2013/09/28 职场文书
剪彩仪式主持词
2014/03/19 职场文书
大型会议策划方案
2014/05/17 职场文书
解除财产保全担保书
2014/05/20 职场文书
群众路线对照检查材料思想汇报怎么写
2014/09/18 职场文书
宿舍管理制度范本
2015/08/07 职场文书
新年祝酒词大全
2015/08/11 职场文书
污染环境建议书
2015/09/14 职场文书
Mysql案例刨析事务隔离级别
2021/09/25 MySQL
springboot如何接收application/x-www-form-urlencoded类型的请求
2021/11/02 Java/Android