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 相关文章推荐
基于Asp.net与Javascript控制的日期控件
May 22 Javascript
谈谈JavaScript中的函数与闭包
Apr 14 Javascript
简单的ajax连接库分享(不用jquery的ajax)
Jan 19 Javascript
Javascript排序算法之计数排序的实例
Apr 05 Javascript
js动态添加表格数据使用insertRow和insertCell实现
May 22 Javascript
JavaScript中的object转换成number或string规则介绍
Dec 31 Javascript
Angularjs中的事件广播 —全面解析$broadcast,$emit,$on
May 17 Javascript
PhotoSwipe异步动态加载图片方法
Aug 25 Javascript
Ajax跨域实现代码(后台jsp)
Jan 21 Javascript
jQuery插件echarts实现的多柱子柱状图效果示例【附demo源码下载】
Mar 04 Javascript
vue使用vuex实现首页导航切换不同路由的方法
May 08 Javascript
详解wepy开发小程序踩过的坑(小结)
May 22 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获取域名的google收录示例
2014/03/24 PHP
ThinkPHP V2.2说明文档没有说明的那些事实例小结
2015/07/01 PHP
[转]JS宝典学习笔记
2007/02/07 Javascript
JavaScript replace(rgExp,fn)正则替换的用法
2010/03/04 Javascript
简略的前端架构心得&amp;&amp;基于editor为例子的编码小技巧
2010/11/25 Javascript
JavaScript 用cloneNode方法克隆节点的代码
2012/10/15 Javascript
原生Js实现元素渐隐/渐现(原理为修改元素的css透明度)
2013/06/24 Javascript
深入理解Javascript作用域与变量提升
2013/12/09 Javascript
JavaScript实现的链表数据结构实例
2015/04/02 Javascript
Javascript递归打印Document层次关系实例分析
2015/05/15 Javascript
举例讲解JavaScript substring()的使用方法
2015/11/09 Javascript
js图片跟随鼠标移动代码
2015/11/26 Javascript
解决wx.onMenuShareTimeline出现的问题
2016/08/16 Javascript
node中modules.exports与exports导出的区别
2018/06/08 Javascript
解析vue路由异步组件和懒加载案例
2018/06/08 Javascript
JS拖拽排序插件Sortable.js用法实例分析
2019/02/20 Javascript
JS利用prototype给类添加方法操作详解
2019/06/21 Javascript
javascript实现视频弹幕效果(两个版本)
2019/11/28 Javascript
[58:37]Serenity vs Fnatic 2018国际邀请赛淘汰赛BO1 8.21
2018/08/22 DOTA
[01:54]TI珍贵瞬间系列(五):压力
2020/08/29 DOTA
python妙用之编码的转换详解
2017/04/21 Python
python之matplotlib学习绘制动态更新图实例代码
2018/01/23 Python
Python实现12306火车票抢票系统
2019/07/04 Python
基于python实现的百度音乐下载器python pyqt改进版(附代码)
2019/08/05 Python
python使用协程实现并发操作的方法详解
2019/12/27 Python
快速解决jupyter notebook启动需要密码的问题
2020/04/21 Python
Python3.7安装pyaudio教程解析
2020/07/24 Python
Python实现敏感词过滤的4种方法
2020/09/12 Python
西班牙在线宠物食品和配件商店:bitiba
2019/10/11 全球购物
本科毕业生自我鉴定
2013/11/02 职场文书
五月的鲜花活动方案
2014/08/21 职场文书
红色影片观后感
2015/06/18 职场文书
2015年教导处教学工作总结
2015/07/22 职场文书
2016年“11.11”光棍节活动总结
2016/04/05 职场文书
CSS3实现的3D隧道效果
2021/04/27 HTML / CSS
奥特曼十大神器:奥特手镯在榜,第一是贝利亚的神器
2022/03/18 日漫