`
youanyyou
  • 浏览: 196473 次
  • 性别: Icon_minigender_1
  • 来自: 长沙
社区版块
存档分类
最新评论

java版RC4加密解密算法

阅读更多

我们的一个项目,需要解析一个用户提供的rc4加密后的文件,特意搜索整理了一个java 版本的RC4加解密算法。

 

  1. public static String HloveyRC4(String aInput,String aKey)   
  2.     {   
  3.         int[] iS = new int[256];   
  4.         byte[] iK = new byte[256];   
  5.           
  6.         for (int i=0;i<256;i++)   
  7.             iS[i]=i;   
  8.               
  9.         int j = 1;   
  10.           
  11.         for (short i= 0;i<256;i++)   
  12.         {   
  13.             iK[i]=(byte)aKey.charAt((i % aKey.length()));   
  14.         }   
  15.           
  16.         j=0;   
  17.           
  18.         for (int i=0;i<255;i++)   
  19.         {   
  20.             j=(j+iS[i]+iK[i]) % 256;   
  21.             int temp = iS[i];   
  22.             iS[i]=iS[j];   
  23.             iS[j]=temp;   
  24.         }   
  25.       
  26.       
  27.         int i=0;   
  28.         j=0;   
  29.         char[] iInputChar = aInput.toCharArray();   
  30.         char[] iOutputChar = new char[iInputChar.length];   
  31.         for(short x = 0;x<iInputChar.length;x++)   
  32.         {   
  33.             i = (i+1) % 256;   
  34.             j = (j+iS[i]) % 256;   
  35.             int temp = iS[i];   
  36.             iS[i]=iS[j];   
  37.             iS[j]=temp;   
  38.             int t = (iS[i]+(iS[j] % 256)) % 256;   
  39.             int iY = iS[t];   
  40.             char iCY = (char)iY;   
  41.             iOutputChar[x] =(char)( iInputChar[x] ^ iCY) ;      
  42.         }   
  43.           
  44.         return new String(iOutputChar);   
  45.                   
  46.     }  

 

加密和解密都用这一个方法。也就是说参数String aInput 可以传一个明文,也可以传一个加密后的字符串,程序会自动的识别。然后执行加解密的响应操作。
使用例子如下:

 

  1. public static void main(String[] args) {      
  2.     String inputStr = "做个好男人";      
  3.     String key = "abcdefg";         
  4.       
  5.     String str = HloveyRC4(inputStr,key);  
  6.       
  7.     //打印加密后的字符串      
  8.     System.out.println(str);    
  9.       
  10.     //打印解密后的字符串      
  11.     System.out.println(HloveyRC4(str,key));    
  12. }   

                  Google 提供的广告

0
3
分享到:
评论

相关推荐

    java实现的RC4加密解密算法示例

    "java实现的RC4加密解密算法示例" RC4加密解密算法是Symmetric-key block cipher的一种,使用同一个密钥进行加密和解密。java实现的RC4加密解密算法可以通过以下步骤实现: 1. 初始化数组:创建一个大小为256的...

    RC4加密解密算法的Java实现

    *网上很多RC4算法在用的时候,都会出现「加密然后立即在内存中解密」可以,但先把加密后的密文写入文件再读取解密就失败的情况。这段代码没有这种情况。 *采用了重载函数,我用了String加密解密,成功。

    RC4加密解密Java实现

    RC4加密算法的Java实现代码 简单清楚,不需要复杂的调试

    本人根据RC4加密解密算法原理自己实现的RC4加密解密程序_RC4加密解密_信息安全_加密解密_密码学

    Java版本会定义一个类来封装RC4算法,通过成员变量表示S盒,使用面向对象的方法实现加密解密功能。Java的类型安全和跨平台特性使得这个实现具有良好的可移植性。 5. **Pascal实现**: Pascal的动态数组可以用来...

    RC4 加密解密算法

    ### RC4加密解密算法详解 #### 一、引言 RC4(Rivest Cipher 4)是一种流加密算法,由RSA数据安全公司的Ron Rivest于1987年设计。RC4算法因其简单高效的特点,在过去广泛应用于各种安全通信场景中,包括但不限于...

    rc4加解密算法

    RC4加解密算法的例程,用vs2005 C#实现,代码中有部分注释,外部有操作文档,唯一的不足是工程文件命名为RSA,但该例程实现的的确是RC4算法!-RC4 encryption algorithm routines, using vs2005 C# Realize, the ...

    RC4加密解密算法

    RC4加密解密算法

    rc4加密解密算法

    压缩包中的"rc4"文件可能就是这样一个实现,包含了RC4加密解密的完整源代码。 然而,需要注意的是,RC4存在一些已知的安全漏洞,如密钥相关性攻击、弱密钥问题和早期密钥流的预测性。这些弱点使得RC4在某些场景下...

    RC6加密解密算法

    RC6是一种先进的对称密钥加密算法,由Rivest、Shamir和Adleman(RSA三人组)于1997年设计,作为AES(高级加密标准...通过以上学习,你将能够深入理解RC6加密解密算法的工作原理,并能将其应用于实际的安全通信场景中。

    易语言RC4加密解密源码

    在易语言中实现RC4加密解密,可以帮助开发者保护数据安全,防止信息被未经授权的用户访问。 首先,我们需要了解RC4算法的基本原理。RC4算法基于一个名为“密钥流生成器”(Key Stream Generator, KSA)和“伪随机...

    易语言RC4加密解密

    本文将详细介绍RC4算法以及如何在易语言中实现加密解密。 1. RC4算法概述: RC4(Rivest Cipher 4)是一种自变异数列密码,通过两个变量K和S生成连续的密钥流,这些密钥流与明文异或后得到密文。RC4算法不依赖于...

    【原创】C# RC4 加密解密工具

    本文将深入探讨C#中RC4加密解密的原理、实现方式以及如何使用提供的工具。 RC4算法基于一个称为密钥流生成器(Key Stream Generator)的过程,它首先从密钥中生成一系列随机的字节,这些字节与明文进行异或操作以...

    易语言RC4加密解密算法

    进度显示函数,置进度显示指针,DecryptByte,EncryptString,DecryptString,EncryptByte,Let_Key,CopyMem,CopyMem_IntArr

    rc5 加密解密算法实现

    用c++实现的rc5 算法的加密解密源代码

    用java编程语言RC4算法的加密和解密

    这是一个用java语言编写的小型系统,用于实现RC4算法的加密和解密

    VB Blowfish Gost RC4等加密解密算法示例.rar

    收集一些运行于VB环境的Blowfish Gost RC4等加密解密算法示例,都是一些比较常用且经典的VB6加密解密算法示例,同时适用于VB.NET编程,一共有将近10种的算法集中到了一个程序中演示,你在加密测试的时候可以选择任一...

    rc6加密解密算法程序

    RC6加密解密算法是一种基于块密码的对称加密算法,由Ron Rivest、Adi Shamir和Leonard Adleman在1997年设计,是AES(高级加密标准)竞赛的候选算法之一。虽然最终AES选择了Rijndael算法,但RC6在密码学领域仍然具有...

    RC4加密解密工具

    C4算法的特点是算法简单,执行速度快。并且密钥长度是可变的,可变范围为1-256字节(8-2048比特),在现在技术支持的前提下,当密钥长度为128...实际上,现在也没有找到对于128bit密钥长度的RC4加密算法的有效攻击方法。

    RC4的java加密解密算法

    RC4算法 java的 RC4算法 java的 RC4算法 java的

Global site tag (gtag.js) - Google Analytics