Codigo python para cifrado/descifrado metodo "Gaius Iulius Caesar".

 El cifrado de César, un método de cifrado por sustitución, tiene su origen en la antigua Roma, donde se atribuye su uso a Julio César para proteger sus mensajes militares, consistiendo en desplazar cada letra del alfabeto un número fijo de posiciones. 


Se basa en un método de cifrado por sustitución que modifica la secuencia de caracteres según una regla fija, el tipo de sistema más habitual a lo largo de la historia. Sin embargo, todos los métodos por sustitución se pueden descifrar mediante el análisis de frecuencia, que recurre a parámetros lingüísticos para adivinar las letras precifradas según la frecuencia con que aparecen.

aqui tienes un codigo en python para cifrar y desifrar con el metodo de Cesar.


def cesar_cifrar(texto, k):

    resultado = ""

    for caracter in texto:

        if caracter.isalpha():  # Verifica si es una letra

            desplazamiento = k % 26  # Asegura que el desplazamiento esté entre 0 y 25

            if caracter.islower():

                nuevo_caracter = chr((ord(caracter) - ord('a') + desplazamiento) % 26 + ord('a'))

            else:

                nuevo_caracter = chr((ord(caracter) - ord('A') + desplazamiento) % 26 + ord('A'))

            resultado += nuevo_caracter

        else:

            resultado += caracter  # Mantiene los caracteres que no son letras

    return resultado


def cesar_descifrar(texto, k):

    return cesar_cifrar(texto, -k)  # Descifrar es cifrar con -k


# Preguntar al usuario qué operación desea realizar

opcion = input("¿Desea cifrar o descifrar? (C/D): ").strip().lower()


if opcion == "c":

    texto_original = input("Ingrese el texto a cifrar: ")

    k = int(input("Ingrese el valor de k: "))

    resultado = cesar_cifrar(texto_original, k)

    print(f"Texto cifrado: {resultado}")


elif opcion == "d":

    texto_cifrado = input("Ingrese el texto a descifrar: ")

    k = int(input("Ingrese el valor de k: "))

    resultado = cesar_descifrar(texto_cifrado, k)

    print(f"Texto descifrado: {resultado}")


else:

    print("Opción no válida. Por favor, ingrese 'C' para cifrar o 'D' para descifrar.")


Comentarios

Entradas populares de este blog

Implementación del Modelo AAA

Simulaciones para dos tipos de vulneribilidades A03:Cross-Site Scripting (XSS) y A04: Insecure Direct Object References (IDOR) del OWASP Top Ten.

Representación de la Cadena de Custodia y DFD según ISO/IEC 27037