“Criptografia é o estudo dos princípios e técnicas pelas quais a informação pode ser transformada da sua forma original para outra ilegível.”
Wikipédia: https://pt.wikipedia.org/wiki/Criptografia.
Criptografia na história
“Cifra de César é um tipo de cifra de substituição na qual cada letra do texto é substituída por outra, que se apresenta no alfabeto abaixo dela um número fixo de vezes.”
Wikipédia: https://pt.wikipedia.org/wiki/Cifra_de_C%C3%A9sar.
Implementando a cifra de substituição
Este tipo de cifra consiste em mover os caracteres pelo alfabeto. O método public static String criptografar(String msg, int chave)
recebe uma String contendo a mensagem que será cifrada e também um número inteiro que representa quanto vamos mudar cada um dos caracteres da mensagem.
public static String criptografar(String msg, int chave) {
String msgCript = "";
for(int i = 0; i < msg.length(); i++) {
msgCript += (char) (msg.charAt(i) + chave);
}
return msgCript;
}
O método public static String descriptografar(String msgCript, int chave)
é similar ao método criptografar
, a única diferença é que subtraímos o valor da chave. Lembrando que o mesmo número de chave usado para criptografar deve ser usado também para descriptografar.
public static String descriptografar(String msgCript, int chave) {
String msg = "";
for(int i = 0; i < msgCript.length(); i++) {
msg += (char) (msgCript.charAt(i) - chave);
}
return msg;
}
O método a seguir apresenta um exemplo de como criptografar e descriptografar usando a cifra de substituição:
public static void main(String[] args) {
String msg = "Olá, tudo bom?";
int chave = 3;
String msgCifrada = criptografar(msg, chave);
System.out.println("Msg criptografada: " + msgCifrada);
String textoPuro = descriptografar(msgCifrada, chave);
System.out.println("Msg original: " + textoPuro);
}
O resultado da mensagem criptografada e descriptografada:
Mensagem criptografada: Roä/#wxgr#erpB
Mensagem descriptografada: Olá, tudo bom?
Conteúdos relacionados
- Criptografia simétrica usando chave privada
- Criptografia assimétrica utilizando um par de chaves publica/privada
- Aprenda a aplicar a função de hash em um texto e como é usado na assinatura digital
- Conhecendo e previnindo a vulnerabilidade SQL Injection