JCriptoCesar, a cifra de Cesar em Java
Publicado por Hercules Merscher (última atualização em 16/09/2010)
[ Hits: 30.325 ]
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.
Agora temos uma assistente virtual no fórum!!! (246)
Compartilhando a tela do Computador no Celular via Deskreen
Como Configurar um Túnel SSH Reverso para Acessar Sua Máquina Local a Partir de uma Máquina Remota
Configuração para desligamento automatizado de Computadores em um Ambiente Comercial
Efeito "livro" em arquivos PDF
Como resolver o erro no CUPS: Unable to get list of printer drivers
Flatpak: remover runtimes não usados e pacotes
Mudar o gerenciador de login (GDM para SDDM e vice-versa) - parte 2
Como eu faço para ativar o sistema de gestos do mousepad? (4)
NGNIX - Aplicar SNAT para evitar roteamento assimetrico (13)
[Python] Automação de scan de vulnerabilidades
[Python] Script para analise de superficie de ataque
[Shell Script] Novo script para redimensionar, rotacionar, converter e espelhar arquivos de imagem
[Shell Script] Iniciador de DOOM (DSDA-DOOM, Doom Retro ou Woof!)
[Shell Script] Script para adicionar bordas às imagens de uma pasta