JCriptoCesar, a cifra de Cesar em Java
Publicado por Perfil removido (última atualização em 16/09/2010)
[ Hits: 30.387 ]
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.
Armazenando a senha de sua carteira Bitcoin de forma segura no Linux
Enviar mensagem ao usuário trabalhando com as opções do php.ini
Meu Fork do Plugin de Integração do CVS para o KDevelop
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
Encontre seus arquivos facilmente com o Drill
Mouse Logitech MX Ergo Advanced Wireless Trackball no Linux
Compartilhamento de Rede com samba em modo Público/Anônimo de forma simples, rápido e fácil
Cups: Mapear/listar todas as impressoras de outro Servidor CUPS de forma rápida e fácil
Não consigo instalar o WineHQ no meu notebook vaio FE15 (Debian) (3)
Montar Partição para usar no Timeshift (8)
Instalação da Imagem ISO do Tails (8)
Não consigo atualizar para LinuxMint 22 com o Mintupdate (7)