JS RC4加解密报文
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加解密报文相关推荐
- 现代密码学实验2 RC4加/解密算法
赞赏码 & 联系方式 & 个人闲话 [实验名称]RC4加/解密算法 [实验目的] 1.理解流密码的概念及相关结构: 2.理解并能够编写基本的流密码体制: 3.熟练应用一种编程语言实现R ...
- C语言实现RC4加解密算法
C语言实现RC4加解密算法 RC4加解密 RC4加解密 #include<stdio.h>/* RC4初始化函数 */ void rc4_init(unsigned char* s, un ...
- aes解密算法 java_AES算法实现Java和JS互通加解密
实际开发中客户端与服务端的通信内容往往需要通过密文传输,本文将介绍可以实现Java与js的互相加解密的AES加密方式 Java语言实现 public class AESTest { //static ...
- android cocoscreator jsc js 间加解密(六)
前言 前面 学了 aandroid cocoscreator 热更新 超详细篇(五) 这章 主要学习 cocoscreator 构建后 jsc 与js 文件 之间相互转化(加解密)并实际测试. 可以配 ...
- XXTea加密 c++ 与 js 互相加解密
关于加密功能,客户端使用的是creator 用js开发的,服务器端用lua做的 要做加密功能: 1.利用c++绑定调用c++实现加密, 好处: ...
- JS逆向加解密——python 实现AES加解密
前言 写爬虫项目,做JS逆向或者APP逆向时,经常遇到网站的很多参数都经过AES加密解密,用python实现AES加解密是非常简单的,免去了扣JS代码,并且实现格式固定,所以本文提供实现好的AES加解 ...
- java实现RC4加解密
一.前言 在密码学中,RC4是一种流加密算法,密钥长度可变.它加解密使用相同的密钥,因此也属于对称加密算法. 二.示例代码 import java.io.UnsupportedEncodingExce ...
- RC4加密解密算法原理及实现对文件的加解密
本文简单实现了RC4算法对于文件的加解密,并已经验证成功.同时实现了对RC4算法加解密较大文件的测速 RC4加密解密算法的原理: 首先,通过我的理解,RC4算法所依赖的最根本原理是:对明文使用同一个密 ...
- RC4加密解密java算法
有一个项目,需要解析一个用户提供的rc4加密后的文件,特意搜索整理了一个java 版本的RC4加解密算法. public static String HloveyRC4(String aInput,S ...
最新文章
- Linux用命令修改dpi,Ubuntu17.10通过dpi更改系统字体大小比例的方法
- ASP.net本地调试时正常,发布时错误的几个问题解析
- bootstrap 垂直居中 布局_给你一份详细的CSS布局指南,请查收
- 【10.9】multiprocessing多进程编程
- [导入]关于DataGrid等控件中的自动编号
- 汇编 debug调试
- 几则常用的BASIS技巧整理
- dubbo源码深度解析_Spring源码深度解析:手把手教你搭建Spring开发环境
- java之spring mvc之拦截器
- Java语言基本元素
- Camtasia混音教程
- (四)数据建模和数据库设计
- opencv安装教程(详细)小白教程
- html苹果笔记本文稿如何转换,苹果电脑的pages文档想要变成word格式该如何转换...
- 火山PC隐藏任务栏程序图标教程
- Docker一些使用问题的解决方法
- Altium Designer(二)——原理图(SchDoc)的绘制
- oracle 按旬统计并且每月小计 行转列 PIVOT函数 与分组小计 ROLLUP 函数
- 利用iText.jar操作pdf文档
- Python读取PSV