public class Encryption {
private static final int[] encrypt = {2, 9, 3, 4, 6, 8, 1, 0};
private static final int[] decrypt = new int[8];
private static final int minLength = 10;
String encrypt (String password) {
if(password.length()<minLength) {
return password;
} else {
char[] arrayEncrypted = password.toCharArray();
for (int i = 0; i < encrypt.length; i++) {
arrayEncrypted[i] = (char) (arrayEncrypted[i]);
}
return String.valueOf(arrayEncrypted);
}
}
String decrypt (String password) {
if (password.length()<minLength) {
return password;
} else {
char[] arrayDecrypted = password.toCharArray();
for (int i = 0; i < arrayDecrypted.length; i++) {
arrayDecrypted[i] = (char) (arrayDecrypted[i]);
}
return String.valueOf(arrayDecrypted);
}
}
boolean isValidLength (String password) {
if (password.length()<minLength) {
return true;
} else {
return false;
}
}
int getMinLength(){
return minLength;
}
}
该程序假设使用经典的置换函数来加密数据。加密类中要使用的加密函数只有(2, 9, 3, 4, 6, 8, 1, 0)。
密码中的每个字符都根据排列移动到新的索引。由于在排列中 2 紧随其后的是 9,因此密码索引 2 处的字符必须重新分配给索引 9。类似地,索引 9 中的字符必须重新分配给索引 3,依此类推。最后一次重新分配通过将最初位于索引 0 的字符放入索引 2 来完成循环。
只是检查一下,因为我的程序非常偏离,我需要一些帮助才能让它回到正轨。下图是编译后的样子。