欢迎访问宙启技术站
智能推送

Python中实现文本加密的3个函数

发布时间:2023-06-30 11:00:50

以下是Python中实现文本加密的三个函数的示例代码:

1. 凯撒密码(Caesar Cipher)加密函数

凯撒密码是一种简单的替换密码,通过将字母在字母表中向后移动固定数量的位置进行加密。

def caesar_encrypt(text, shift):
    encrypted_text = ""
    for char in text:
        if char.isalpha():
            if char.isupper():
                encrypted_char = chr((ord(char) - 65 + shift) % 26 + 65)
            else:
                encrypted_char = chr((ord(char) - 97 + shift) % 26 + 97)
        else:
            encrypted_char = char
        encrypted_text += encrypted_char
    return encrypted_text

2. 维吉尼亚密码(Vigenère Cipher)加密函数

维吉尼亚密码根据一个密钥表,将明文中的每个字母与密钥进行加密。

def vigenere_encrypt(text, key):
    encrypted_text = ""
    key_index = 0
    for char in text:
        if char.isalpha():
            if char.isupper():
                encrypted_char = chr((ord(char) - 65 + ord(key[key_index % len(key)].upper()) - 65) % 26 + 65)
            else:
                encrypted_char = chr((ord(char) - 97 + ord(key[key_index % len(key)].lower()) - 97) % 26 + 97)
            key_index += 1
        else:
            encrypted_char = char
        encrypted_text += encrypted_char
    return encrypted_text

3. 替代密码(Substitution Cipher)加密函数

替代密码是一种将明文中每个字母替换为另一个字母或符号的密码。

def substitution_encrypt(text, substitutions):
    encrypted_text = ""
    for char in text:
        if char.isalpha():
            if char.isupper():
                encrypted_char = substitutions[char.lower()].upper()
            else:
                encrypted_char = substitutions[char]
        else:
            encrypted_char = char
        encrypted_text += encrypted_char
    return encrypted_text

这些函数可通过调用来实现文本加密。下面是一个示例:

text = "Hello, world!"
shift = 3
key = "SECRET"
substitutions = {'a': '*', 'b': '#', 'c': '@', ...}

encrypted_text_caesar = caesar_encrypt(text, shift)
encrypted_text_vigenere = vigenere_encrypt(text, key)
encrypted_text_substitution = substitution_encrypt(text, substitutions)

print("Caesar Cipher:", encrypted_text_caesar)
print("Vigenère Cipher:", encrypted_text_vigenere)
print("Substitution Cipher:", encrypted_text_substitution)

请注意,这些加密算法都是简单的示例,并不具备高级的加密安全性。在实际应用中,应使用更复杂的加密算法和密钥来确保数据的安全性。