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