Cifrado César en Java
El Cifrado César es uno de los métodos más simples para realizar el cifrado. Este tutorial demuestra cómo realizar el cifrado y descifrado usando Caesar Cipher en Java.
Cifrado César en Java
Caesar Cipher es uno de los primeros enfoques para realizar el cifrado; se puede implementar en cualquier lenguaje de programación. El algoritmo es simple; por ejemplo, si encriptamos el texto delftstack
, el algoritmo Caesar Cipher encriptará el texto reemplazando los caracteres con la posición fija debajo de los caracteres en orden alfabético.
Pasamos una clave que es un número entero, para decidir cuántas posiciones queremos bajar en el cifrado de los caracteres.
Por ejemplo, si el texto es ABCD
y la clave es 2, el texto encriptado será CDEF
. Tratemos de implementar el enfoque de cifrado Caesar Cipher en Java.
Cifrado de cifrado César en Java
El siguiente código demuestra la implementación del cifrado Caesar Cipher en Java.
package delftstack;
import java.util.Scanner;
public class Caesar_Cipher_Encrypt {
public static void main(String... s) {
String Original_Message, Encrypted_Message = "";
int Cipher_Key;
char Message_Char;
Scanner sc = new Scanner(System.in);
System.out.println("Please enter a message: ");
Original_Message = sc.nextLine();
System.out.println("Enter the key: ");
Cipher_Key = sc.nextInt();
for (int i = 0; i < Original_Message.length(); ++i) {
Message_Char = Original_Message.charAt(i);
if (Message_Char >= 'a' && Message_Char <= 'z') {
Message_Char = (char) (Message_Char + Cipher_Key);
if (Message_Char > 'z') {
Message_Char = (char) (Message_Char - 'z' + 'a' - 1);
}
Encrypted_Message += Message_Char;
} else if (Message_Char >= 'A' && Message_Char <= 'Z') {
Message_Char = (char) (Message_Char + Cipher_Key);
if (Message_Char > 'Z') {
Message_Char = (char) (Message_Char - 'Z' + 'A' - 1);
}
Encrypted_Message += Message_Char;
} else {
Encrypted_Message += Message_Char;
}
}
System.out.println("The Encrypted Message is : " + Encrypted_Message);
}
}
El código anterior implementa el método de cifrado Caesar Cipher. Ver la salida:
Please enter a message:
This is delftstack.com
Enter the key:
3
The Encrypted Message is : Wklv lv ghoiwvwdfn.frp
Descifrado del cifrado César en Java
El descifrado será la operación viceversa. Vea la implementación del descifrado utilizando el método Caesar Cipher.
package delftstack;
import java.util.Scanner;
public class Caesar_Cipher_Decrypt {
public static void main(String... s) {
String Original_Message, Decrypted_Message = "";
int Cipher_Key;
char Message_Char;
Scanner sc = new Scanner(System.in);
System.out.println("Please enter an encrypted message: ");
Original_Message = sc.nextLine();
System.out.println("Enter the key: ");
Cipher_Key = sc.nextInt();
for (int i = 0; i < Original_Message.length(); ++i) {
Message_Char = Original_Message.charAt(i);
if (Message_Char >= 'a' && Message_Char <= 'z') {
Message_Char = (char) (Message_Char - Cipher_Key);
if (Message_Char < 'a') {
Message_Char = (char) (Message_Char + 'z' - 'a' + 1);
}
Decrypted_Message += Message_Char;
} else if (Message_Char >= 'A' && Message_Char <= 'Z') {
Message_Char = (char) (Message_Char - Cipher_Key);
if (Message_Char < 'A') {
Message_Char = (char) (Message_Char + 'Z' - 'A' + 1);
}
Decrypted_Message += Message_Char;
} else {
Decrypted_Message += Message_Char;
}
}
System.out.println("The Decrypted Message is : " + Decrypted_Message);
}
}
El código anterior implementa el descifrado del Cifrado César en Java. Ver la salida:
Please enter an encrypted message:
Wklv lv ghoiwvwdfn.frp
Enter the key:
3
The Decrypted Message is : This is delftstack.com
Sheeraz is a Doctorate fellow in Computer Science at Northwestern Polytechnical University, Xian, China. He has 7 years of Software Development experience in AI, Web, Database, and Desktop technologies. He writes tutorials in Java, PHP, Python, GoLang, R, etc., to help beginners learn the field of Computer Science.
LinkedIn Facebook