Я пытаюсь создать приложение для шифрования на Android Studio, используя флаттер.Прямо сейчас я работаю над простым шифром Atbash, но при попытке проверить его получаю ошибку диапазона.Это коды шифрования и дешифрования:
@override
String encrypt(String plaintext, {String key}) {
String alfa = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
String alfaReverso = "";
for(int i = alfa.length-1; i > -1; i++){
alfaReverso += alfa[i];
}
String encryText = "";
for (int i = 0; i < plaintext.length; i++){
if(plaintext.codeUnitAt(i) == 32){
encryText += " ";
}
else{
int count = 0;
for(int j = 0; j < alfa.length; j++){
if(plaintext[i] == alfa[j]){
encryText += alfaReverso[j];
break;
}
}
}
}
return "ENCRYPT Plain = " + encryText;
}
}
@override
String decrypt(String cyphertext, {String key}) {
String alfa = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
String alfaReverso = "";
for(int i = alfa.length-1; i > -1; i++){
alfaReverso += alfa[i];
}
String dencryText = "";
for (int i = 0; i < cyphertext.length; i++){
if(cyphertext.codeUnitAt(i) == 32){
dencryText += " ";
}
else{
int count = 0;
for(int j = 0; j < alfaReverso.length; j++){
if(cyphertext[i] == alfaReverso[j]){
dencryText += alfa[j];
break;
}
}
}
}
return "ENCRYPT Plain = " + dencryText;
}
При попытке запустить это исключение диапазона, которое я получаю:
I / flutter (6004): RangeError (index): недопустимое значение: Не в диапазоне 0..25 включительно: 26
Я знаю, что это как-то связано с алфавитом, который я использую, но я не знаю, как его решить.