A Criptografia de Cifra de César em Java

 

Programa em Java que implementa a Cifra de César, criptografando textos com um deslocamento de caracteres definido pelo usuário.

A criptografia é um tema crucial no mundo moderno, especialmente no que diz respeito à segurança da informação. Ela tem como principal objetivo garantir que as mensagens trocadas entre partes sejam compreendidas apenas pelas pessoas autorizadas, mantendo o conteúdo protegido contra acessos não desejados. Uma das técnicas mais antigas e simples de criptografia é a Cifra de César, amplamente conhecida por sua facilidade de implementação. Neste artigo, exploraremos como implementá-la em Java utilizando uma abordagem prática e eficiente.

O Que é a Cifra de César?

A Cifra de César é uma técnica de criptografia por substituição em que cada letra do texto original é deslocada um número fixo de posições no alfabeto. Por exemplo, com um deslocamento de 3, a letra ‘A’ seria substituída por ‘D’, ‘B’ por ‘E’, e assim por diante. Essa técnica é bastante simples e pode ser facilmente quebrada por métodos de análise de frequência, mas ainda é uma boa maneira de entender os conceitos básicos de criptografia.

A Implementação em Java

Neste exemplo, vamos criar um programa em Java que criptografa um texto utilizando a Cifra de César. O código que será apresentado a seguir realiza esse processo de maneira bastante simples, utilizando a classe StringBuilder para manipulação de strings e a classe Scanner para receber a entrada do usuário.

O Código:
import java.util.Scanner;

public class Main {

    
    public static String criptografar(String texto, int deslocamento) {
        StringBuilder textoCriptografado = new StringBuilder();
        
        for (int i = 0; i < texto.length(); i++) {
            char caractere = texto.charAt(i);
            
            
            if (Character.isUpperCase(caractere)) {
                
                char novaLetra = (char) (((caractere - 'A' + deslocamento) % 26 + 26) % 26 + 'A');
                textoCriptografado.append(novaLetra);
            }
            
            else if (Character.isLowerCase(caractere)) {
                
                char novaLetra = (char) (((caractere - 'a' + deslocamento) % 26 + 26) % 26 + 'a');
                textoCriptografado.append(novaLetra);
            } else {
                
                textoCriptografado.append(caractere);
            }
        }
        return textoCriptografado.toString();
    }

    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        
        
        System.out.print("texto pra criptograf: ");
        String texto = scanner.nextLine();
        System.out.print("valor de X: ");
        int deslocamento = scanner.nextInt();
        
        
        String resultado = criptografar(texto, deslocamento);
        
        
        System.out.println("Texto criptograf: " + resultado);
        
        scanner.close();
    }
}

Explicação do Código

O código apresentado é simples e eficiente, e realiza o seguinte:

  1. Método criptografar:
    • Recebe um texto e um valor de deslocamento como parâmetros.
    • Utiliza a classe StringBuilder para construir a string criptografada.
    • O laço for percorre cada caractere do texto, verificando se é uma letra maiúscula, minúscula ou outro caractere (como espaços e pontuação).
    • Para as letras maiúsculas, o deslocamento é calculado usando a fórmula:
      novaLetra = (char) (((caractere - 'A' + deslocamento) % 26 + 26) % 26 + 'A');
      

      Essa fórmula garante que a letra seja deslocada corretamente, considerando o alfabeto circular, ou seja, ao chegar em ‘Z’, o próximo caractere será ‘A’.

    • O mesmo processo é feito para letras minúsculas, com uma fórmula similar.
    • Caso o caractere não seja uma letra (por exemplo, números, espaços ou pontuação), ele é mantido inalterado no texto criptografado.
  2. Método main:
    • Utiliza a classe Scanner para ler o texto e o valor de deslocamento fornecido pelo usuário.
    • Chama o método criptografar e exibe o texto criptografado na tela.

Como Usar o Programa

Para usar o programa, basta seguir as instruções fornecidas na linha de comando:

  1. O programa solicitará que você insira o texto que deseja criptografar.
  2. Em seguida, pedirá o valor de deslocamento (X). Esse valor define quantas posições cada letra será deslocada no alfabeto.
  3. O programa então exibirá o texto criptografado.

Exemplo de Uso

Suponha que você queira criptografar o texto “Hello, World!” com um deslocamento de 3:

Texto para criptografar: Hello, World!
Valor de X (deslocamento): 3
Texto criptografado: Khoor, Zruog!

Como podemos observar, cada letra foi deslocada 3 posições à frente no alfabeto. Letras minúsculas também foram criptografadas corretamente, e os caracteres não alfabéticos (como a vírgula e o espaço) permaneceram inalterados.

Conclusão

A Cifra de César é uma técnica de criptografia simples, mas que oferece uma excelente oportunidade de aprender sobre a manipulação de caracteres e strings em Java. O código apresentado aqui não só ilustra como aplicar a cifra, mas também como utilizar estruturas de controle como loops e condicionais de forma prática. Embora seja uma técnica vulnerável à quebra por análise de frequência, ela é um bom ponto de partida para quem está iniciando no campo da criptografia e deseja compreender os fundamentos dessa área.

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *