JCriptoCesar, a cifra de Cesar em Java
Publicado por Perfil removido (última atualização em 16/09/2010)
[ Hits: 30.759 ]
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.
A combinação de WMs com compositores feitos por fora
Audacious, VLC e QMMP - que saudades do XMMS
SUNO OpenSource: Crie um servidor de gerador de música com IA
Instalação Completa e Configuração Básica do Void Linux
A Fundação da Confiança Digital: A Importância Estratégica de uma PKI CA na Segurança de Dados
Como desativar a economia de energia no Gentoo (Systemd, Wi-Fi, USB e SSH)
Tenha opção de emblemas embutido no pcmanfm
Instalador não reconhece SSD Sata. (13)
Erro ao instalar o linux-headers [RESOLVIDO] (2)
O WiFi não reconhece minha rede depois que o processo de suspensão é r... (4)









