RC4加密解密java算法

本文介绍了一种Java版本的RC4加解密算法实现方法。该算法能够自动识别输入字符串并执行相应的加密或解密操作。通过一个具体示例展示了如何使用此方法进行数据的加密与解密。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

原文传送门:http://www.hlovey.cn/2009/11/02/java-rc4.html

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

[java] view plain copy
  1. publicstaticStringHloveyRC4(StringaInput,StringaKey)
  2. {
  3. int[]iS=newint[256];
  4. byte[]iK=newbyte[256];
  5. for(inti=0;i<256;i++)
  6. iS[i]=i;
  7. intj=1;
  8. for(shorti=0;i<256;i++)
  9. {
  10. iK[i]=(byte)aKey.charAt((i%aKey.length()));
  11. }
  12. j=0;
  13. for(inti=0;i<255;i++)
  14. {
  15. j=(j+iS[i]+iK[i])%256;
  16. inttemp=iS[i];
  17. iS[i]=iS[j];
  18. iS[j]=temp;
  19. }
  20. inti=0;
  21. j=0;
  22. char[]iInputChar=aInput.toCharArray();
  23. char[]iOutputChar=newchar[iInputChar.length];
  24. for(shortx=0;x<iInputChar.length;x++)
  25. {
  26. i=(i+1)%256;
  27. j=(j+iS[i])%256;
  28. inttemp=iS[i];
  29. iS[i]=iS[j];
  30. iS[j]=temp;
  31. intt=(iS[i]+(iS[j]%256))%256;
  32. intiY=iS[t];
  33. chariCY=(char)iY;
  34. iOutputChar[x]=(char)(iInputChar[x]^iCY);
  35. }
  36. returnnewString(iOutputChar);
  37. }

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

[java] view plain copy
  1. publicstaticvoidmain(String[]args){
  2. StringinputStr="做个好男人";
  3. Stringkey="abcdefg";
  4. Stringstr=HloveyRC4(inputStr,key);
  5. //打印加密后的字符串
  6. System.out.println(str);
  7. //打印解密后的字符串
  8. System.out.println(HloveyRC4(str,key));
  9. }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值