Olá pessoal, estou com um problema e não estou conseguindo encontrar uma solução.
Tenho o seguinte código para realizar a criptografia de César:
private void btDescriptografarActionPerformed(java.awt.event.ActionEvent evt) {
String palavra;
int cifra;
palavra = txtPalavra.getText();
cifra = Integer.parseInt(txtChave.getText());
if(palavra.equals("") || cifra != 0){
int i, num = palavra.length();
String vaz = "";
for (i=0; i<num; i++) {
vaz = vaz + (char)(palavra.charAt(i) - cifra);
lblDes.setText(vaz);
}
}else{
JOptionPane.showMessageDialog(null, "Complete os campos!");
} // TODO add your handling code here:
}
Ele está criptografando como desejo, por exemplo se coloco a palavra lucas e uma cifra de número 3 ele me retorna o valor de oxfdv.
O problema é por exemplo se coloco a letra z e coloco cifra 2 ele vai me exibir um caractere, no caso | e eu preciso que ele exiba o B, sendo assim ele tem de voltar a contagem pro A.
Gostaria de saber se alguem tem alguma solução.
O erro está ocorrendo com a descriptografia também, se coloco por exemplo A e uma cifra 3 para descriptografar ele me exibi um caractere também, sendo que era pra exibir a letra x.
Grato, Lucas>