Percorrendo array de char e criptografia

1 resposta
V
Pessoal, acho que minha pergunta é simples mas não achei resposta. Testando uma classe que criptografa msg através da Cifra de César, não cosigo entender o que faz a parte do código "- 'A'" (linha 23) no código abaixo. Alguém pode me esclarecer?
public class CifraDeCesar {
    public static final int ALPHASIZE = 26;
    public static final char[] alpha = {'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H',
        'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V',
        'W', 'X', 'Y', 'Z'};
    protected char[] encrypt = new char[ALPHASIZE];
    protected char[] decrypt = new char[ALPHASIZE];
    
    public CifraDeCesar(){
        for (int i=0; i<ALPHASIZE; i++)
            encrypt[i]= alpha[(i+3) % ALPHASIZE];
        
        for (int i=0; i<ALPHASIZE; i++)
            decrypt [encrypt[i] - 'A'] = alpha[i];
        
    }
    
    /* Metodo de Criptografia    */
    public String encrypt(String secret){
    char[] mess = secret.toCharArray();
    for (int i=0; i<mess.length; i++)
        if (Character.isUpperCase(mess[i]))
            mess[i]= encrypt[mess[i] - 'A'];
    return new String(mess);
    }
 
     /* Metodo de Decriptografia    */
    public String decrypt(String secret){
    char[] mess = secret.toCharArray();
    for (int i=0; i<mess.length; i++)
        if (Character.isUpperCase(mess[i]))
            mess[i]= decrypt[mess[i] - 'A'];
    return new String(mess);
    }
}

1 Resposta

FilipeNevola

‘A’ é um char, que tem uma representação numérica, no caso ele está transformando o caracter em outro usando o ‘A’ como deslocamento.

Criado 19 de outubro de 2012
Ultima resposta 20 de out. de 2012
Respostas 1
Participantes 2