Я хотел зашифровать строку, сделать ее нечитабельной и поэтому предложил этот метод:
public String scrambleWord(String start_word){
char[] wordarray = start_word.toCharArray();
char[] dummywordarray = start_word.toCharArray();
Random random = new Random();
int r = random.nextInt(wordarray.length-1);
int i = 0;
int j = r+1;
while(i <= r){
dummywordarray[wordarray.length -i-1] = wordarray[i];
i++;
}
while (j <= wordarray.length -1){
dummywordarray[j-r-1] = wordarray[j];
j++;
}
String newword = String.valueOf(dummywa);
return newword;
Так что я сначала преобразовал строку в массив символов, и в моем методе мне пришлось дублировать массив символов "dummywordarray". Пройдя один раз через этот алгоритм, каждая буква слова изменит свою позицию. Но это не будет очень хорошо закодировано, в том смысле, что вы могли бы собрать его с первого взгляда.
Итак, я передал заданную строку длиной менее 9 символов в метод 7 раз, и слова довольно хорошо зашифрованы, то есть нечитаемы.
Но я попробовал это с 30-символьной строкой, и потребовалось 500 проходов, прежде чем я смог гарантировать, что это было хорошо закодировано. 500!
Я уверен, что есть лучший алгоритм, я хотел бы несколько советов по любому
а) совершенствование этого метода
или же
б) лучший способ.