DEV Community

yoezequiel
yoezequiel

Posted on

2 1 1 1 1

Cifrado Vigenère en Python: Protege tus Mensajes con una Clave

En la era digital, la privacidad y la seguridad de la información son preocupaciones cada vez más relevantes. Cuando necesitas enviar mensajes secretos o confidenciales, es esencial contar con herramientas de cifrado confiables. Una de estas herramientas es el cifrado Vigenère, que ha sido utilizado durante siglos para proteger información sensible. En este artículo, exploraremos un código Python que implementa el cifrado Vigenère y te guiará a través de su uso.

Introducción al Cifrado Vigenère

El cifrado Vigenère es un tipo de cifrado polialfabético, lo que significa que utiliza una clave para cifrar el texto original, y esta clave se repite cíclicamente durante todo el proceso de cifrado. A diferencia de un cifrado César, que desplaza todas las letras por la misma cantidad, el cifrado Vigenère desplaza las letras en diferentes cantidades según la posición de la letra en la clave.

El Código Python

A continuación, se muestra el código Python que implementa el cifrado Vigenère y que te permitirá cifrar y descifrar mensajes de manera sencilla:

def encrypt_vigenere(plain_text, key):
    encrypted_text = ""
    key_index = 0
    for char in plain_text:
        if char.isalpha():
            char = char.upper()
            shift = ord(key[key_index].upper()) - ord('A')
            encrypted_char = chr((ord(char) - ord('A') + shift) % 26 + ord('A'))
            encrypted_text += encrypted_char
            key_index = (key_index + 1) % len(key)
        else:
            encrypted_text += char
    return encrypted_text

def decrypt_vigenere(encrypted_text, key):
    decrypted_text = ""
    key_index = 0
    for char in encrypted_text:
        if char.isalpha():
            char = char.upper()
            shift = ord(key[key_index].upper()) - ord('A')
            decrypted_char = chr((ord(char) - ord('A') - shift) % 26 + ord('A'))
            decrypted_text += decrypted_char
            key_index = (key_index + 1) % len(key)
        else:
            decrypted_text += char
    return decrypted_text

def main():
    print("Bienvenido al cifrador Vigenère")
    option = input("Ingrese 'C' para cifrar o 'D' para descifrar: ")

    if option.upper() == 'C':
        plain_text = input("Ingrese el texto a cifrar: ")
        key = input("Ingrese la clave: ")

        encrypted_text = encrypt_vigenere(plain_text, key)
        print("Texto cifrado:", encrypted_text)

    elif option.upper() == 'D':
        encrypted_text = input("Ingrese el texto a descifrar: ")
        key = input("Ingrese la clave: ")

        decrypted_text = decrypt_vigenere(encrypted_text, key)
        print("Texto descifrado:", decrypted_text)

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

main()
Enter fullscreen mode Exit fullscreen mode

Cómo Usar el Cifrado Vigenère

El código proporciona una interfaz de línea de comandos para cifrar y descifrar texto utilizando el cifrado Vigenère. Cuando ejecutas el programa, te dará la bienvenida y te pedirá que elijas entre cifrar ('C') o descifrar ('D') un mensaje. Veamos ejemplos de cómo usarlo:

Ejemplo 1: Cifrar un Mensaje

  1. Al ejecutar el programa, elige la opción 'C' para cifrar un mensaje.
  2. Ingresa el texto que deseas cifrar, por ejemplo, "Hello".
  3. Luego, proporciona una clave, como "KEY".
  4. El programa generará el texto cifrado y te mostrará el resultado. En este caso, obtendrías "RIJVS".

Ejemplo 2: Descifrar un Mensaje

  1. Al ejecutar el programa, elige la opción 'D' para descifrar un mensaje.
  2. Ingresa el texto cifrado, en este caso, "RIJVS".
  3. Proporciona la misma clave que se usó para cifrar el mensaje, es decir, "KEY".
  4. El programa descifrará el texto y te mostrará el mensaje original, que en este caso sería "HELLO".

Conclusión

El cifrado Vigenère es una técnica clásica pero efectiva para proteger la confidencialidad de los mensajes. Este código Python te proporciona una manera sencilla de cifrar y descifrar texto utilizando el cifrado Vigenère. Puedes utilizarlo para comunicarte de manera segura con tus amigos, colegas o cualquier persona que tenga la clave para descifrar tus mensajes.

Billboard image

The Next Generation Developer Platform

Coherence is the first Platform-as-a-Service you can control. Unlike "black-box" platforms that are opinionated about the infra you can deploy, Coherence is powered by CNC, the open-source IaC framework, which offers limitless customization.

Learn more

Top comments (0)

A Workflow Copilot. Tailored to You.

Pieces.app image

Our desktop app, with its intelligent copilot, streamlines coding by generating snippets, extracting code from screenshots, and accelerating problem-solving.

Read the docs

AWS GenAI LIVE!

GenAI LIVE! is a dynamic live-streamed show exploring how AWS and our partners are helping organizations unlock real value with generative AI.

Tune in to the full event

DEV is partnering to bring live events to the community. Join us or dismiss this billboard if you're not interested. ❤️