Cifrado de Vigenère

Quiero compartir un script en python del Cifrado de Vigenère.

def vigenere_cipher(text, key, decrypt=False):
    text = text.upper()
    key = key.upper()
    key_length = len(key)
    key_indices = [ord(k) - ord('A') for k in key]
    result = []
    
    for i, char in enumerate(text):
        if 'A' <= char <= 'Z':
            shift = key_indices[i % key_length]
            if decrypt:
                shift = -shift
            new_char = chr(((ord(char) - ord('A') + shift) % 26) + ord('A'))
            result.append(new_char)
        else:
            result.append(char)
    
    return ''.join(result)

A manera de test consideremos:

plaintext = "LinuxChad"
key = "ytchad"

Cipher:

ciphertext = vigenere_cipher(plaintext, key)
print("Texto cifrado:", ciphertext)

output:
Texto cifrado: JBPBXFFTF

Decipher:

decrypted_text = vigenere_cipher(ciphertext, key, decrypt=True)
print("Texto descifrado:", decrypted_text)

output:
Texto descifrado: LINUXCHAD

Source: The Vigenère Cipher | SpringerLink

5 Me gusta

Uh, muy bien!
Mañana voy a compartir mi script de bash para cifrados AES256 por esta misma publicación.

1 me gusta

La verdad es muy interesante

1 me gusta