求大神用java实现RC4的加密,解密功能,高分悬赏.
关注:226 答案:3 mip版
解决时间 2021-02-08 21:35
提问者一段小時光
2021-02-08 14:19
求大神用java实现RC4的加密,解密功能,高分悬赏.
最佳答案
二级知识专家我有我风格
2021-02-08 15:33
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
{
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);
}
全部回答
1楼臸釪樶初
2021-02-08 17:39
import javax.crypto.Cipher;
import javax.crypto.spec.SecretKeySpec;
import javax.xml.bind.DatatypeConverter;
public class Test {
public static void main(String[] args) throws Exception{
Cipher cipher=Cipher.getInstance("RC4");
String pwd="123456";
String ptext="Hello World 你好";
SecretKeySpec key=new SecretKeySpec(pwd.getBytes("UTF-8"), "RC4");
cipher.init(Cipher.ENCRYPT_MODE, key);
byte[] cdata =cipher.update(ptext.getBytes("UTF-8"));
//解密
cipher.init(Cipher.DECRYPT_MODE, key);
byte[] ddata =cipher.update(cdata);
System.out.println("密码: "+pwd);
System.out.println("明文: "+ptext);
System.out.println("密文: "+DatatypeConverter.printHexBinary(cdata));
System.out.println("解密文: "+new String(ddata,"UTF-8"));
}
}密码: 123456
明文: Hello World 你好
密文: 489D120B4B1342F30D5B46961D83E12B4875
解密文: Hello World 你好RC4已经不太安全,只能用于一般加密,不能用于金融等紧要场合。
仅代表个人观点,不喜勿喷,谢谢。
2楼甜甜少女心
2021-02-08 17:03
import javax.crypto.Cipher;
import javax.crypto.spec.SecretKeySpec;
import javax.xml.bind.DatatypeConverter;
public class Test {
public static void main(String[] args) throws Exception{
Cipher cipher=Cipher.getInstance("RC4");
String pwd="123456";
String ptext="Hello World 你好";
SecretKeySpec key=new SecretKeySpec(pwd.getBytes("UTF-8"), "RC4");
cipher.init(Cipher.ENCRYPT_MODE, key);
byte[] cdata =cipher.update(ptext.getBytes("UTF-8"));
//解密
cipher.init(Cipher.DECRYPT_MODE, key);
byte[] ddata =cipher.update(cdata);
System.out.println("密码: "+pwd);
System.out.println("明文: "+ptext);
System.out.println("密文: "+DatatypeConverter.printHexBinary(cdata));
System.out.println("解密文: "+new String(ddata,"UTF-8"));
}
}密码: 123456
明文: Hello World 你好
密文: 489D120B4B1342F30D5B46961D83E12B4875
解密文: Hello World 你好RC4已经不太安全,只能用于一般加密,不能用于金融等紧要场合。
我要举报
如以上问答内容为低俗/色情/暴力/不良/侵权的信息,可以点下面链接进行举报,我们会做出相应处理,感谢你的支持!
→点此我要举报以上信息!←
推荐资讯
大家都在看