JCriptoCesar, a cifra de Cesar em Java
Publicado por Hercules Merscher (última atualização em 16/09/2010)
[ Hits: 30.198 ]
Homepage: www.herculesdev.com.br
Pequeno programa em Java com a implementação do algoritmo da cifra de Cesar. Para mais informações sobre o algoritmo acesse:
http://pt.wikipedia.org/wiki/Cifra_de_C%C3%A9sar
import java.util.Scanner; /** * Programa simples que implementa a cifra Cesar. * -> Contém bloco principal com exemplo de funcionamento. * * Mais informações: * http://pt.wikipedia.org/wiki/Cifra_de_C%C3%A9sar * * @author Hercules Lemke Merscher * @version 1.0 */ public class JCriptoCesar { /** * Metodo que criptografa um texto, * utilizando a famosa cifra de Cesar. */ public static String encriptar(int chave, String texto){ // Variavel que ira guardar o texto crifrado StringBuilder textoCifrado = new StringBuilder(); // Variavel com tamanho do texto a ser encriptado int tamanhoTexto = texto.length(); // Criptografa cada caracter por vez for(int c=0; c < tamanhoTexto; c++){ // Transforma o caracter em codigo ASCII e faz a criptografia int letraCifradaASCII = ((int) texto.charAt(c)) + chave; // Verifica se o codigo ASCII esta no limite dos caracteres imprimiveis while(letraCifradaASCII > 126) letraCifradaASCII -= 94; // Transforma codigo ASCII criptografado em caracter ao novo texto textoCifrado.append( (char)letraCifradaASCII ); } // Por fim retorna a mensagem criptografada por completo return textoCifrado.toString(); } /** * Metodo que descriptografa um texto, * utilizando a famosa cifra Cesar. */ public static String decriptar(int chave, String textoCifrado){ // Variavel que ira guardar o texto decifrado StringBuilder texto = new StringBuilder(); // Variavel com tamanho do texto a ser decriptado int tamanhoTexto = textoCifrado.length(); // Descriptografa cada caracter por vez for(int c=0; c < tamanhoTexto; c++){ // Transforma o caracter em codigo ASCII e faz a descriptografia int letraDecifradaASCII = ((int) textoCifrado.charAt(c)) - chave; // Verifica se o codigo ASCII esta no limite dos caracteres imprimiveis while(letraDecifradaASCII < 32) letraDecifradaASCII += 94; // Transforma codigo ASCII descriptografado em caracter ao novo texto texto.append( (char)letraDecifradaASCII ); } // Por fim retorna a mensagem descriptografada por completo return texto.toString(); } public static void main(String[] args){ try { Scanner entrada = new Scanner(System.in); System.out.println("*****************************************************"); // Informa texto e chave de criptografia System.out.print("Informe o texto a ser criptografado: "); String texto = entrada.nextLine(); System.out.print("Informe a chave de deslocamento: "); int chave = entrada.nextInt(); // Criptografando String textoCriptografado = encriptar(chave, texto); // Descriptografando String textoDescriptografado = decriptar(chave, textoCriptografado); // Imprimindo no CONSOLE os resultados System.out.println("\n\nTEXTO CRIPTOGRAFADO: " + textoCriptografado); System.out.println("TEXTO DESCRIPTOGRAFADO: " + textoDescriptografado); System.out.println("*****************************************************"); } catch (RuntimeException e) { // Trata erro de digitacao System.out.println("A chave de deslocamento foi informada incorretamente."); System.out.println("Execute o programa novamente e entre com uma chave valida."); } } }
Login Java web com MySQL com criptografia MD5
Nenhum comentário foi encontrado.
Como ativar o módulo de cancelamento de ruído no Pipewire
Como escolher o melhor escalonador de CPU para melhorar o desempenho da máquina
Curiosidade sobre DOOM Guy e Isabelle de Animal Crossing
Inicializando servidor Ubuntu na AWS e rodando apache em Container
Otimizando o seu sistema com swappiness
Instalando Brave Browser no Debian 12
Adicionando ícones de status do teclado no system tray do Xfce4
Como obter o ProjectBrutality do github
Como colocar a opção de "redimensionar e rotacionar imagens" no menu de contexto do Fedora
Não é possível logar com usuário, apenas com root | ArchLinux (2)
Problemas para acessar o Linux mint (6)
Zorin OS não reconhece placa de rede do pc [RESOLVIDO] (32)
adicionar dois ips na mesma interface no rock linux 9 (4)
Apertei Crtl+alt+f1 e agora somente inicia na linha de comando (5)