Cifrado César en Criptografía – Part 1

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

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *