栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

JAVA实现RC4加密

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

JAVA实现RC4加密

 RC4算法

RC4是一种对称密码算法,它属于对称密码算法中的序列密码(streamcipher,也称为流密码),它是可变密钥长度,面向字节操作的流密码。

RC4算法特点:(1)、算法简洁易于软件实现,加密速度快,安全性比较高;

                       (2)、密钥长度可变,一般用256个字节。

        对称密码算法的工作方式有四种:电子密码本(ECB, electronic codebook)方式、密码分组链接(CBC, cipherblock chaining)方式、密文反馈(CFB, cipher-feedback)方式、输出反馈(OFB, output-feedback)方式。

         RC4算法采用的是输出反馈工作方式,所以可以用一个短的密钥产生一个相对较长的密钥序列。

         OFB方式的最大的优点是消息如果发生错误(这里指的是消息的某一位发生了改变,而不是消息的某一位丢失),错误不会传递到产生的密钥序列上;缺点是对插入攻击很敏感,并且对同步的要求比较高。

步骤:1.  S、T初始化

        2. 数据表S的初始置换

        3. 密钥流生成   ---- 伪随机数生成方法(PGRA)

        4. 加密    ---异或

        5. 解密    ---异或

 

1、初始化S和T

for i=0 to 255 do

   S[i]=i;

   T[i]=K[ imod keylen ];

2、初始排列S

j=0;

for i=0 to 255 do

   j= ( j+S[i]+T[i])mod256;

   swap(S[i],S[j]);//循环执行完成后,数据表S被伪随机化;

3、产生密钥流

i,j=0;

for r=0 to len do  //r为明文长度,r字节

   i=(i+1) mod 256;

   j=(j+S[i])mod 256;

   swap(S[i],S[j]);

   t=(S[i]+S[j])mod 256;

   k[r]=S[t];

import java.util.Scanner;
public class RC4 {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		 codebooksc c1 = new codebooksc();
         Scanner sc =new Scanner(System.in);
         System.out.println("密钥:");
         String k1 = sc.next();
         int m = k1.length();//密钥长度
         char K[] = new char[m];//密钥空间
         
         for(int i=0;i 

运行结果

 

 

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/672012.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号