JS RC4加解密

RC4(来自Rivest Cipher 4的缩写)是一种流加密算法,密钥长度可变。它加解密使用相同的密钥,因此也属于对称加密算法。RC4加密算法原理 , 对明文使用同一个密钥异或两次最后是得到原文。
这个不是加解密字符串,它是用于协议数据传输过程中通信报文的加密

const RC4_KEY_LEN_MAX = 256;var rc4CalcTemplate = {Rc4Key : "65osdbsfidcxza", // 自己约定的密钥Keylen : 0,Rc4Sbox : new Array(256),
};/*初始化函数*/
function rc4_init(){rc4CalcTemplate.Keylen = rc4CalcTemplate.Rc4Key.length;var j=0;var k = new Array(256);var tmp = 0;for(let i = 0; i < 256; i++){rc4CalcTemplate.Rc4Sbox[i] = i;k[i] = String(rc4CalcTemplate.Rc4Key[i%rc4CalcTemplate.Keylen]).charCodeAt(0);}for(let i = 0;i < 256; i++){j = (j + rc4CalcTemplate.Rc4Sbox[i] + k[i]) % 256;tmp = rc4CalcTemplate.Rc4Sbox[i];rc4CalcTemplate.Rc4Sbox[i]= rc4CalcTemplate.Rc4Sbox[j];//交换s[i]和s[j]rc4CalcTemplate.Rc4Sbox[j] = tmp;}
}
/*加解密*/
function rc4_crypt(Data, Len){var i = 0, j = 0, t = 0,sLen = 0;var k = 0;var tmp;var s = new Array(RC4_KEY_LEN_MAX);var result = new Array(Len);for (sLen = 0; sLen < RC4_KEY_LEN_MAX; sLen++){s[sLen] = rc4CalcTemplate.Rc4Sbox[sLen];}for (k = 0; k < Len; k++){i = (i + 1) % 256;j = (j + s[i]) % 256;tmp = s[i];s[i] = s[j];//交换s[x]和s[y]s[j] = tmp;t = (s[i] + s[j]) % 256;result[k] = Data[k] ^ s[t];}return result;
}
/* 初始化 */
rc4_init();
var input = [0x75, 0x9A, 0xC0, 0x89, 0x18, 0x06, 0x76, 0xC9, 0x52, 0x0C, 0x49, 0x76, 0x3B, 0x35, 0xA9, 0x13, 0x81, 0x48, 0xBE, 0x9C, 0xE1, 0x08, 0xA7, 0x01, 0x9A, 0xD9, 0xB4, 0x57, 0xA4, 0xDE, 0x42, 0x7E, 0x99, 0x55, 0x05, 0x63, 0x78, 0xC7, 0xB8];
var result= rc4_crypt(input, input.length);

JS RC4加解密报文相关推荐

  1. 现代密码学实验2 RC4加/解密算法

    赞赏码 & 联系方式 & 个人闲话 [实验名称]RC4加/解密算法 [实验目的] 1.理解流密码的概念及相关结构: 2.理解并能够编写基本的流密码体制: 3.熟练应用一种编程语言实现R ...

  2. C语言实现RC4加解密算法

    C语言实现RC4加解密算法 RC4加解密 RC4加解密 #include<stdio.h>/* RC4初始化函数 */ void rc4_init(unsigned char* s, un ...

  3. aes解密算法 java_AES算法实现Java和JS互通加解密

    实际开发中客户端与服务端的通信内容往往需要通过密文传输,本文将介绍可以实现Java与js的互相加解密的AES加密方式 Java语言实现 public class AESTest { //static ...

  4. android cocoscreator jsc js 间加解密(六)

    前言 前面 学了 aandroid cocoscreator 热更新 超详细篇(五) 这章 主要学习 cocoscreator 构建后 jsc 与js 文件 之间相互转化(加解密)并实际测试. 可以配 ...

  5. XXTea加密 c++ 与 js 互相加解密

    关于加密功能,客户端使用的是creator  用js开发的,服务器端用lua做的 要做加密功能: 1.利用c++绑定调用c++实现加密,                             好处: ...

  6. JS逆向加解密——python 实现AES加解密

    前言 写爬虫项目,做JS逆向或者APP逆向时,经常遇到网站的很多参数都经过AES加密解密,用python实现AES加解密是非常简单的,免去了扣JS代码,并且实现格式固定,所以本文提供实现好的AES加解 ...

  7. java实现RC4加解密

    一.前言 在密码学中,RC4是一种流加密算法,密钥长度可变.它加解密使用相同的密钥,因此也属于对称加密算法. 二.示例代码 import java.io.UnsupportedEncodingExce ...

  8. RC4加密解密算法原理及实现对文件的加解密

    本文简单实现了RC4算法对于文件的加解密,并已经验证成功.同时实现了对RC4算法加解密较大文件的测速 RC4加密解密算法的原理: 首先,通过我的理解,RC4算法所依赖的最根本原理是:对明文使用同一个密 ...

  9. RC4加密解密java算法

    有一个项目,需要解析一个用户提供的rc4加密后的文件,特意搜索整理了一个java 版本的RC4加解密算法. public static String HloveyRC4(String aInput,S ...

最新文章

  1. Linux用命令修改dpi,Ubuntu17.10通过dpi更改系统字体大小比例的方法
  2. ASP.net本地调试时正常,发布时错误的几个问题解析
  3. bootstrap 垂直居中 布局_给你一份详细的CSS布局指南,请查收
  4. 【10.9】multiprocessing多进程编程
  5. [导入]关于DataGrid等控件中的自动编号
  6. 汇编 debug调试
  7. 几则常用的BASIS技巧整理
  8. dubbo源码深度解析_Spring源码深度解析:手把手教你搭建Spring开发环境
  9. java之spring mvc之拦截器
  10. Java语言基本元素
  11. Camtasia混音教程
  12. (四)数据建模和数据库设计
  13. opencv安装教程(详细)小白教程
  14. html苹果笔记本文稿如何转换,苹果电脑的pages文档想要变成word格式该如何转换...
  15. 火山PC隐藏任务栏程序图标教程
  16. Docker一些使用问题的解决方法
  17. Altium Designer(二)——原理图(SchDoc)的绘制
  18. oracle 按旬统计并且每月小计 行转列 PIVOT函数 与分组小计 ROLLUP 函数
  19. 利用iText.jar操作pdf文档
  20. Python读取PSV

热门文章

  1. MATLAB 中文论坛相关帖子整理
  2. 新能源汽车VCU开发模型及控制策略
  3. 双休日出差是否是加班?可以要求支付加班费么?
  4. 1.在Windows安装Git客户端--公司的安装方案
  5. Zabbix —— 配置邮箱报警
  6. Java的setRecord怎么用,Data set record formats数据集记录根式
  7. php爬虫实战(抓取美拍视频)
  8. 【无限思维画布】制作思维导图第三步,节点移动与编辑
  9. 中兴通讯重磅推出首款智能AI机顶盒
  10. Amazon App Tester工具的安装和配置Amazon内购接入流程以及测试