RC4加密解密java算法

举报
chenyu 发表于 2021/07/27 01:07:19 2021/07/27
2.1k+ 0 0
【摘要】 有一个项目,需要解析一个用户提供的rc4加密后的文件,特意搜索整理了一个java 版本的RC4加解密算法。 public static String HloveyRC4(String aInput,String aKey) { int[] iS = new int[256]; byte[] iK = new byte[256]; for (in...

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



       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));
       }
  
 


文章来源: chenyu.blog.csdn.net,作者:chen.yu,版权归原作者所有,如需转载,请联系作者。

原文链接:chenyu.blog.csdn.net/article/details/50803162

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

作者其他文章

评论(0

抱歉,系统识别当前为高风险访问,暂不支持该操作

    全部回复

    上滑加载中

    设置昵称

    在此一键设置昵称,即可参与社区互动!

    *长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

    *长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。