我的程序是加密密码的基本方法的粗略计划,通过选择与"键"中的数字一起使用的随机数和随机数学运算符。用于加密密码的字符串。但是每当我运行它时,程序都会抛出一个错误,经过一段时间的查看,我无法分辨导致问题的原因。
public static void main(String[] args) {
String pass = "Password";
String pwE = "";
String key = "";
String keyop = "";
for (int i = 0; i < pass.length(); i++) {
key += (int) (Math.random() * 9 + 1);
}
for (int i = 0; i < pass.length(); i++) {
keyop += (int) (Math.random() * 4 + 1);
}
System.out.println(keyop);
System.out.println(key);
for (int i = 0; i < pass.length(); i++) {
for (int j = 0; j < pass.length(); j++) {
if (keyop.charAt(i) == '1') {
pwE += " " + (char) (pass.charAt(i) + (key.charAt(j)));
} else if (keyop.charAt(i) == '2') {
pwE += (char) (pass.charAt(i) - key.charAt(j));
} else if (keyop.charAt(i) == '3') {
pwE += (char) (pass.charAt(i) * key.charAt(j));
} else if (keyop.charAt(i) == '4') {
pwE += " " + ((double) (pass.charAt(i) / key.charAt(j))) + " ";
}
}
pass = pwE;
pwE = "";
}
System.out.println(pass);
}
答案 0 :(得分:0)
上面编写的代码有一个逻辑错误,你正在改变j循环结束时pass的值。
for (int j = 0; j < pass.length(); j++) {} pass = pwE;
现在传递更改的值超过7,您将在
处收到错误“String index out of range 8”key.charAt(j)