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 相关文章推荐
网页的标准,IMG不支持onload标签怎么办
Jun 29 Javascript
用js传递value默认值的示例代码
Sep 11 Javascript
javascript事件委托的方式绑定详解
Jun 10 Javascript
纯JS代码实现隔行变色鼠标移入高亮
Nov 23 Javascript
Vue.js组件tab实现选项卡切换
Mar 23 Javascript
详解超简单的react服务器渲染(ssr)入坑指南
Feb 28 Javascript
详解微信小程序用定时器实现倒计时效果
Apr 30 Javascript
通过javascript实现段落的收缩与展开
Jun 26 Javascript
layui多图上传实现删除功能的例子
Sep 23 Javascript
解决layui-table单元格设置为百分比在ie8下不能自适应的问题
Sep 28 Javascript
微信小程序学习总结(三)条件、模板、文件引用实例分析
Jun 04 Javascript
addEventListener()和removeEventListener()追加事件和删除追加事件
Dec 04 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配置文件中最常用四个ini函数
2007/03/19 PHP
php下载excel无法打开的解决方法
2013/12/24 PHP
php使用 readfile() 函数设置文件大小大小的方法
2017/08/11 PHP
PHP多线程模拟实现秒杀抢单
2018/02/07 PHP
JavaScript 脚本将当地时间转换成其它时区
2009/03/19 Javascript
javascript 另一种图片滚动切换效果思路
2012/04/20 Javascript
jqGrid读取选择的多行的某个属性代码
2014/05/18 Javascript
将HTML格式的String转化为HTMLElement的实现方法
2014/08/07 Javascript
解决jquery版本冲突的有效方法
2014/09/02 Javascript
JS中字符串trim()使用示例
2015/05/26 Javascript
11种ASP连接数据库的方法
2015/09/18 Javascript
实例代码详解jquery.slides.js
2015/11/16 Javascript
JavaScript基础重点(必看)
2016/07/09 Javascript
微信小程序开发探究
2016/12/27 Javascript
JS实现数组简单去重及数组根据对象中的元素去重操作示例
2018/01/05 Javascript
Vue二次封装axios为插件使用详解
2018/05/21 Javascript
实例讲解JavaScript截取字符串
2018/11/30 Javascript
vue-cli history模式实现tomcat部署报404的解决方式
2019/09/06 Javascript
vue实现在线翻译功能
2019/09/27 Javascript
JS实现导航栏楼层特效
2020/01/01 Javascript
Vue+Java+Base64实现条码解析的示例
2020/09/23 Javascript
详细解析Python当中的数据类型和变量
2015/04/25 Python
Python实现返回数组中第i小元素的方法示例
2017/12/04 Python
在Pycharm中将pyinstaller加入External Tools的方法
2019/01/16 Python
Django连接数据库并实现读写分离过程解析
2019/11/13 Python
python实现IOU计算案例
2020/04/12 Python
Notino法国:购买香水和化妆品
2019/04/15 全球购物
毕业生实习鉴定
2013/12/11 职场文书
社团2014年植树节活动总结
2014/03/11 职场文书
数学教研活动总结
2014/07/02 职场文书
自强自立美德少年事迹材料
2014/08/16 职场文书
团队拓展活动方案
2014/08/28 职场文书
物流仓管员岗位职责
2015/04/01 职场文书
2015年乡镇工作总结范文
2015/04/22 职场文书
python代码实现备忘录案例讲解
2021/07/26 Python
Go gorilla securecookie库的安装使用详解
2022/08/14 Golang