1,问题类型:JAVA.字符串.异或加密
2,具体:我针对该题目进行编程,但报错,请问该如何改进以解决
题目:
我的代码:
(我编到“借助异或将原文加密:”就报错了)
报错图:
1,问题类型:JAVA.字符串.异或加密
2,具体:我针对该题目进行编程,但报错,请问该如何改进以解决
题目:
报错图:
128位的位串超过了int的取值范围把,使用数组保存试试,修改如下:
public class homework2 {
public static void main(String[] args) {
// TODO Auto-generated method stub
String a = "";
String word = "特急,明天会餐取消!";
char [] WORD = word.toCharArray();
for(int i=0;i<WORD.length;i++) {
a+=Integer.toBinaryString(WORD[i]);
}
String b = "";
String key = "一共需要八个汉字";
char [] KEY = key.toCharArray();
for(int i=0;i<KEY.length;i++) {
b+=Integer.toBinaryString(KEY[i]);
}
// 加密
char [] ci = new char[WORD.length] ;
int i=0;
while(i<WORD.length) {
if(i<KEY.length) {
ci[i] = (char)(WORD[i]^KEY[i]);
}else {
ci[i] = (char)(WORD[i]^0);
}
i++;
}
String ciphertext = String.valueOf(ci);
System.out.println(ciphertext);
char [] result = new char[ci.length] ;
i=0;
while(i<ci.length) {
if(i<KEY.length) {
result[i] = (char)(ci[i]^KEY[i]);
}else {
result[i] = (char)(ci[i]^0);
}
i++;
}
System.out.println(result);
// String ciphertext = String.valueOf(Integer.parseInt(a)^Integer.parseInt(b));
// System.out.println(ciphertext);
}
}