用 Java 实现的 Rc4 加密算法

               

转载自:http://blog.csdn.net/a9529lty/article/details/4813393

有一个项目,需要解析一个用户提供的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));   } 



           

猜你喜欢

转载自blog.csdn.net/qq_44894420/article/details/89281259