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 操作cookies及正确使用cookies的属性
Oct 15 Javascript
firefox插件Firebug的使用教程
Jan 02 Javascript
ajax上传时参数提交不更新等相关问题
Dec 11 Javascript
基于javascript滚动图片具体实现
Nov 18 Javascript
使用js画图之画切线
Jan 12 Javascript
js实现class样式的修改、添加及删除的方法
Jan 20 Javascript
jQuery仿gmail实现fixed布局的方法
May 27 Javascript
JavaScript中获取纯正的undefined的方法
Mar 06 Javascript
一个极为简单的requirejs实现方法
Oct 20 Javascript
浅谈mint-ui loadmore组件注意的问题
Nov 08 Javascript
使用vue实现grid-layout功能实例代码
Jan 05 Javascript
在移动端使用vue-router和keep-alive的方法示例
Dec 02 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 中dirname(_file_)讲解
2007/03/18 PHP
discuz程序的PHP加密函数原理分析
2011/08/05 PHP
PHP原生模板引擎 最简单的模板引擎
2012/04/25 PHP
基于php split()函数的用法详解
2013/06/05 PHP
php实现文件下载(支持中文文名)
2013/12/04 PHP
PHP对XML内容进行修改和删除实例代码
2016/10/26 PHP
php 自定义错误日志实例详解
2016/11/12 PHP
jQuery中的bind绑定事件与文本框改变事件的临时解决方法
2010/08/13 Javascript
jquery 结合C#后台的数组对文章的关键字自动添加链接的代码
2011/07/15 Javascript
js检测浏览器版本、核心、是否移动端示例
2014/04/24 Javascript
Ajax中解析Json的两种方法对比分析
2015/06/25 Javascript
javascript事件冒泡简单示例
2016/06/20 Javascript
微信小程序 页面跳转和数据传递实例详解
2017/01/19 Javascript
js获取json中key所对应的value值的简单方法
2020/06/17 Javascript
jQuery实现表格奇偶行显示不同背景色 就这么简单
2017/03/13 Javascript
完美解决UI-Grid表格元素中多个空格显示为一个空格的问题
2017/04/25 Javascript
Vue项目中quill-editor带样式编辑器的使用方法
2017/08/08 Javascript
JS实现电商放大镜效果
2017/08/24 Javascript
vue中使用refs定位dom出现undefined的解决方法
2017/12/21 Javascript
JS运动特效之同时运动实现方法分析
2018/01/24 Javascript
jQuery zTree搜索-关键字查询 递归无限层功能实现代码
2018/01/25 jQuery
Angular 向组件传递模板的两种方法
2018/02/23 Javascript
使用nodejs实现JSON文件自动转Excel的工具(推荐)
2020/06/24 NodeJs
跟老齐学Python之大话题小函数(1)
2014/10/10 Python
详解Python进阶之切片的误区与高级用法
2018/12/24 Python
python多线程共享变量的使用和效率方法
2019/07/16 Python
用sqlalchemy构建Django连接池的实例
2019/08/29 Python
解决Python pip 自动更新升级失败的问题
2020/02/21 Python
如何使用Python调整图像大小
2020/09/26 Python
Python虚拟环境virtualenv创建及使用过程图解
2020/12/08 Python
CSS3 clip-path 用法介绍详解
2018/03/01 HTML / CSS
英国健身仓库:Bodybuilding Warehouse
2019/03/06 全球购物
维德科技C#面试题笔试题
2015/12/09 面试题
经济管理自荐书
2014/06/09 职场文书
2015年班组建设工作总结
2015/05/13 职场文书
Golang并发操作中常见的读写锁详析
2021/08/30 Golang