La técnica del Cifrado César es uno de los primeros y más simples métodos de técnica de cifrado. Es simplemente un tipo de cifrado por sustitución, es decir, cada letra de un texto dado se reemplaza por una letra con un número fijo de posiciones en el alfabeto. Por ejemplo, con un cambio de 1, A sería reemplazada por B, B se convertiría en C, y así sucesivamente. Aparentemente, el método lleva el nombre de Julio César, quien aparentemente lo usó para comunicarse con sus funcionarios.
Por lo tanto, para cifrar un texto dado, necesitamos un valor entero, conocido como desplazamiento, que indica el número de posiciones que se ha movido hacia abajo cada letra del texto.
El cifrado se puede representar usando aritmética modular transformando primero las letras en números, según el esquema, A = 0, B = 1,…, Z = 25. El cifrado de una letra por un desplazamiento n se puede describir matemáticamente como.
C++
// A C++ program to illustrate Caesar Cipher Technique #include <iostream> using namespace std; // This function receives text and shift and // returns the encrypted text string encrypt(string text, int s) { string result = ""; // traverse text for (int i=0;i<text.length();i++) { // apply transformation to each character // Encrypt Uppercase letters if (isupper(text[i])) result += char(int(text[i]+s-65)%26 +65); // Encrypt Lowercase letters else result += char(int(text[i]+s-97)%26 +97); } // Return the resulting string return result; } // Driver program to test the above function int main() { string text="ATTACKATONCE"; int s = 4; cout << "Text : " << text; cout << "\nShift: " << s; cout << "\nCipher: " << encrypt(text, s); return 0; }
Java
//A Java Program to illustrate Caesar Cipher Technique class CaesarCipher { // Encrypts text using a shift od s public static StringBuffer encrypt(String text, int s) { StringBuffer result= new StringBuffer(); for (int i=0; i<text.length(); i++) { if (Character.isUpperCase(text.charAt(i))) { char ch = (char)(((int)text.charAt(i) + s - 65) % 26 + 65); result.append(ch); } else { char ch = (char)(((int)text.charAt(i) + s - 97) % 26 + 97); result.append(ch); } } return result; } // Driver code public static void main(String[] args) { String text = "ATTACKATONCE"; int s = 4; System.out.println("Text : " + text); System.out.println("Shift : " + s); System.out.println("Cipher: " + encrypt(text, s)); } }
Python3
#A python program to illustrate Caesar Cipher Technique def encrypt(text,s): result = "" # traverse text for i in range(len(text)): char = text[i] # Encrypt uppercase characters if (char.isupper()): result += chr((ord(char) + s-65) % 26 + 65) # Encrypt lowercase characters else: result += chr((ord(char) + s - 97) % 26 + 97) return result #check the above function text = "ATTACKATONCE" s = 4 print ("Text : " + text) print ("Shift : " + str(s)) print ("Cipher: " + encrypt(text,s))
C#
// A C# Program to illustrate Caesar Cipher Technique using System; using System.Text; public class CaesarCipher { // Encrypts text using a shift od s public static StringBuilder encrypt(String text, int s) { StringBuilder result= new StringBuilder(); for (int i=0; i<text.Length; i++) { if (char.IsUpper(text[i])) { char ch = (char)(((int)text[i] + s - 65) % 26 + 65); result.Append(ch); } else { char ch = (char)(((int)text[i] + s - 97) % 26 + 97); result.Append(ch); } } return result; } // Driver code public static void Main(String[] args) { String text = "ATTACKATONCE"; int s = 4; Console.WriteLine("Text : " + text); Console.WriteLine("Shift : " + s); Console.WriteLine("Cipher: " + encrypt(text, s)); } } /* This code contributed by PrinciRaj1992 */
PHP
<?php // A PHP program to illustrate Caesar // Cipher Technique // This function receives text and shift // and returns the encrypted text function encrypt($text, $s) { $result = ""; // traverse text for ($i = 0; $i < strlen($text); $i++) { // apply transformation to each // character Encrypt Uppercase letters if (ctype_upper($text[$i])) $result = $result.chr((ord($text[$i]) + $s - 65) % 26 + 65); // Encrypt Lowercase letters else $result = $result.chr((ord($text[$i]) + $s - 97) % 26 + 97); } // Return the resulting string return $result; } // Driver Code $text = "ATTACKATONCE"; $s = 4; echo "Text : " . $text; echo "\nShift: " . $s; echo "\nCipher: " . encrypt($text, $s); // This code is contributed by ita_c ?>
Javascript
<script> //A Javascript Program to illustrate Caesar Cipher Technique // Encrypts text using a shift od s function encrypt(text, s) { let result="" for (let i = 0; i < text.length; i++) { let char = text[i]; if (char.toUpperCase(text[i])) { let ch = String.fromCharCode((char.charCodeAt(0) + s-65) % 26 + 65); result += ch; } else { let ch = String.fromCharCode((char.charCodeAt(0) + s-97) % 26 + 97); result += ch; } } return result; } // Driver code let text = "ATTACKATONCE"; let s = 4; document.write("Text : " + text + "<br>"); document.write("Shift : " + s + "<br>"); document.write("Cipher: " + encrypt(text, s) + "<br>"); // This code is contributed by avanitrachhadiya2155 </script>
Publicación traducida automáticamente
Artículo escrito por GeeksforGeeks-1 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA