JCriptoCesar, a cifra de Cesar em Java
Publicado por Perfil removido (última atualização em 16/09/2010)
[ Hits: 30.637 ]
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 extrair chaves TOTP 2FA a partir de QRCODE (Google Authenticator)
Linux em 2025: Segurança prática para o usuário
Desktop Linux em alta: novos apps, distros e privacidade marcam o sábado
IA chega ao desktop e impulsiona produtividade no mundo Linux
Novos apps de produtividade, avanços em IA e distros em ebulição agitam o universo Linux
Como instalar o repositório do DBeaver no Ubuntu
Como instalar o Plex Media Server no Ubuntu
Digitando underscore com "shift" + "barra de espaços"
Como ativar a lixeira e recuperar aquivos deletados em um servidor Linux
Como mudar o nome de dispositivos Bluetooth via linha de comando
Programa fora de escala na tela do pc (10)
Fedora KDE plasma 42 X Módulo de segurança BB (Warsaw-2) (1)
O programa assinador digital (1)









