我们的一个项目,需要解析一个用户提供的rc4加密后的文件,特意搜索整理了一个java 版本的RC4加解密算法。
- public static String HloveyRC4(String aInput,String aKey)
- {
- int[] iS = new int[256];
- byte[] iK = new byte[256];
- for (int i=0;i<256;i++)
- iS[i]=i;
- int j = 1;
- for (short i= 0;i<256;i++)
- {
- iK[i]=(byte)aKey.charAt((i % aKey.length()));
- }
- j=0;
- for (int i=0;i<255;i++)
- {
- j=(j+iS[i]+iK[i]) % 256;
- int temp = iS[i];
- iS[i]=iS[j];
- iS[j]=temp;
- }
- int i=0;
- j=0;
- char[] iInputChar = aInput.toCharArray();
- char[] iOutputChar = new char[iInputChar.length];
- for(short x = 0;x<iInputChar.length;x++)
- {
- i = (i+1) % 256;
- j = (j+iS[i]) % 256;
- int temp = iS[i];
- iS[i]=iS[j];
- iS[j]=temp;
- int t = (iS[i]+(iS[j] % 256)) % 256;
- int iY = iS[t];
- char iCY = (char)iY;
- iOutputChar[x] =(char)( iInputChar[x] ^ iCY) ;
- }
- return new String(iOutputChar);
- }
加密和解密都用这一个方法。也就是说参数String aInput 可以传一个明文,也可以传一个加密后的字符串,程序会自动的识别。然后执行加解密的响应操作。
使用例子如下:
- public static void main(String[] args) {
- String inputStr = "做个好男人";
- String key = "abcdefg";
- String str = HloveyRC4(inputStr,key);
- //打印加密后的字符串
- System.out.println(str);
- //打印解密后的字符串
- System.out.println(HloveyRC4(str,key));
- }
相关推荐
"java实现的RC4加密解密算法示例" RC4加密解密算法是Symmetric-key block cipher的一种,使用同一个密钥进行加密和解密。java实现的RC4加密解密算法可以通过以下步骤实现: 1. 初始化数组:创建一个大小为256的...
*网上很多RC4算法在用的时候,都会出现「加密然后立即在内存中解密」可以,但先把加密后的密文写入文件再读取解密就失败的情况。这段代码没有这种情况。 *采用了重载函数,我用了String加密解密,成功。
RC4加密算法的Java实现代码 简单清楚,不需要复杂的调试
Java版本会定义一个类来封装RC4算法,通过成员变量表示S盒,使用面向对象的方法实现加密解密功能。Java的类型安全和跨平台特性使得这个实现具有良好的可移植性。 5. **Pascal实现**: Pascal的动态数组可以用来...
### RC4加密解密算法详解 #### 一、引言 RC4(Rivest Cipher 4)是一种流加密算法,由RSA数据安全公司的Ron Rivest于1987年设计。RC4算法因其简单高效的特点,在过去广泛应用于各种安全通信场景中,包括但不限于...
RC4加解密算法的例程,用vs2005 C#实现,代码中有部分注释,外部有操作文档,唯一的不足是工程文件命名为RSA,但该例程实现的的确是RC4算法!-RC4 encryption algorithm routines, using vs2005 C# Realize, the ...
RC4加密解密算法
压缩包中的"rc4"文件可能就是这样一个实现,包含了RC4加密解密的完整源代码。 然而,需要注意的是,RC4存在一些已知的安全漏洞,如密钥相关性攻击、弱密钥问题和早期密钥流的预测性。这些弱点使得RC4在某些场景下...
RC6是一种先进的对称密钥加密算法,由Rivest、Shamir和Adleman(RSA三人组)于1997年设计,作为AES(高级加密标准...通过以上学习,你将能够深入理解RC6加密解密算法的工作原理,并能将其应用于实际的安全通信场景中。
在易语言中实现RC4加密解密,可以帮助开发者保护数据安全,防止信息被未经授权的用户访问。 首先,我们需要了解RC4算法的基本原理。RC4算法基于一个名为“密钥流生成器”(Key Stream Generator, KSA)和“伪随机...
本文将详细介绍RC4算法以及如何在易语言中实现加密解密。 1. RC4算法概述: RC4(Rivest Cipher 4)是一种自变异数列密码,通过两个变量K和S生成连续的密钥流,这些密钥流与明文异或后得到密文。RC4算法不依赖于...
本文将深入探讨C#中RC4加密解密的原理、实现方式以及如何使用提供的工具。 RC4算法基于一个称为密钥流生成器(Key Stream Generator)的过程,它首先从密钥中生成一系列随机的字节,这些字节与明文进行异或操作以...
进度显示函数,置进度显示指针,DecryptByte,EncryptString,DecryptString,EncryptByte,Let_Key,CopyMem,CopyMem_IntArr
用c++实现的rc5 算法的加密解密源代码
这是一个用java语言编写的小型系统,用于实现RC4算法的加密和解密
收集一些运行于VB环境的Blowfish Gost RC4等加密解密算法示例,都是一些比较常用且经典的VB6加密解密算法示例,同时适用于VB.NET编程,一共有将近10种的算法集中到了一个程序中演示,你在加密测试的时候可以选择任一...
RC6加密解密算法是一种基于块密码的对称加密算法,由Ron Rivest、Adi Shamir和Leonard Adleman在1997年设计,是AES(高级加密标准)竞赛的候选算法之一。虽然最终AES选择了Rijndael算法,但RC6在密码学领域仍然具有...
C4算法的特点是算法简单,执行速度快。并且密钥长度是可变的,可变范围为1-256字节(8-2048比特),在现在技术支持的前提下,当密钥长度为128...实际上,现在也没有找到对于128bit密钥长度的RC4加密算法的有效攻击方法。
RC4算法 java的 RC4算法 java的 RC4算法 java的