RC4加解密算法python简单实现

JavaScript025

RC4加解密算法python简单实现,第1张

序列密码又称流密码,原理是明文流和密钥流按顺序逐位异或运算,从而产出密文流,序列密码属于对合运算。

以下是典型的序列密码RC4的加解密算法实现。其中秘钥流产生算法由RSA和PRGA两个核心子算法组成。

其中引用了FrankTools模块中的ItoB, XOR, StoB, BtoS, swap函数,FrankTools模块中将常用函数打包以便调用,展示如下:

水平和精力所限,疏漏之处难免,欢迎各位多多不吝赐教!

f@tacgib.club

uniapp如何加密解密rc4步骤:

1、第一步是生成S盒

2、初始排列S然后用T产生S的初始置换.从S到S255,对每个Si,根据由Ti确定的方案,将Si置换为S中的另一字节

3、产生密钥流矢量S一旦完成初始化,输人密钥就不再被使用。

4、最后进行异或运算data与key按位异或操作

import javax.crypto.Cipher

import javax.crypto.spec.SecretKeySpec

import javax.xml.bind.DatatypeConverter

public class Test {

public static void main(String[] args) throws Exception{

Cipher cipher=Cipher.getInstance("RC4")

String pwd="123456"

String ptext="Hello World 你好"

SecretKeySpec key=new SecretKeySpec(pwd.getBytes("UTF-8"), "RC4")

cipher.init(Cipher.ENCRYPT_MODE, key)

byte[] cdata =cipher.update(ptext.getBytes("UTF-8"))

//解密

cipher.init(Cipher.DECRYPT_MODE, key)

byte[] ddata =cipher.update(cdata)

System.out.println("密码: "+pwd)

System.out.println("明文: "+ptext)

System.out.println("密文: "+DatatypeConverter.printHexBinary(cdata))

System.out.println("解密文: "+new String(ddata,"UTF-8"))

}

} 密码: 123456

明文: Hello World 你好

密文: 489D120B4B1342F30D5B46961D83E12B4875

解密文: Hello World 你好

RC4已经不太安全,只能用于一般加密,不能用于金融等紧要场合。