RC4加密解密java算法
【摘要】 有一个项目,需要解析一个用户提供的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)