To tentando fazer um programa em java q criptografa e descriptografa uma string digitada pelo usuário (apenas letras/caracteres alfanuméricos) e estou com problema na parte de descriptografar. Estou limitando a criptografia pra retornar apenas letras (baseado na tabela ASCII) e esta funcionando até ai, mas n consigo fazer o caminho inverso, apenas com as letras minusculas, com a maiúsculas n consigo fazer funcionar, n sei se é erro de matemática ou lógica msm, desde já obrigado. Código abaixo sem a parte das letras maiúsculas.
(OBS: iniciante em java e novo no fórum se é uma duvida mt besta ou fiz algo de errado na criação do tópico me desculpem)
package Main;
import java.util.Scanner;
public class Criptografia {
public static void main(String args[]){
Scanner read = new Scanner(System.in);
String sSenha;
int iCriptografia;
String sCriptografada = "";
String sDescriptografada = "";
System.out.println("Digite a senha q deseja criptografar:");
sSenha = read.nextLine();
char[] cSenha = new char[sSenha.length()];
int[] iAscii = new int[sSenha.length()];
for(int i = 0; i < cSenha.length; i++){
iAscii[i] = (int) sSenha.charAt(i);
}
//------------------- Criptografar ----------------------------------
for(int i = 0; i < cSenha.length; i++){
if(iAscii[i] >= 97 && iAscii[i] <= 102){
iCriptografia = iAscii[i] - 15;
}else{
iCriptografia = iAscii[i] + 15;
}
if(iCriptografia >= 122){
iCriptografia -= 20;
}
cSenha[i] = (char) iCriptografia;
sCriptografada += cSenha[i];
}
System.out.println("Criptografia: " + sCriptografada);
//------------------- Descriptografar ----------------------------------
for(int i = 0; i < cSenha.length; i++){
iAscii[i] = (int) sCriptografada.charAt(i);
}
for(int i = 0; i < cSenha.length; i++){
if(iAscii[i] < 90){
iCriptografia = iAscii[i] + 15;
}else{
iCriptografia = iAscii[i] + 20;
if(iCriptografia >= 122 && iCriptografia < 138){
iCriptografia -= 15;
}else{
iCriptografia = iAscii[i] - 15;
}
}
cSenha[i] = (char) iCriptografia;
sDescriptografada += cSenha[i];
}
System.out.println("Descriptografado: " + sDescriptografada);
}
}