以下是使用Python实现单字维吉尼亚密码中的间隔的示例代码:
def vigenere_cipher(text, key):
# 将文本转换为大写字母
text = text.upper()
key = key.upper()
ciphertext = ""
# 循环遍历文本中的每个字符
for i in range(len(text)):
# 获取文本字符的ASCII码
text_char = ord(text[i])
# 获取密钥字符的ASCII码
key_char = ord(key[i % len(key)])
# 计算加密后的字符的ASCII码
cipher_char = ((text_char + key_char) % 26) + ord('A')
# 将加密后的字符添加到密文中
ciphertext += chr(cipher_char)
return ciphertext
def vigenere_decipher(ciphertext, key):
# 将密文转换为大写字母
ciphertext = ciphertext.upper()
key = key.upper()
plaintext = ""
# 循环遍历密文中的每个字符
for i in range(len(ciphertext)):
# 获取密文字符的ASCII码
cipher_char = ord(ciphertext[i])
# 获取密钥字符的ASCII码
key_char = ord(key[i % len(key)])
# 计算解密后的字符的ASCII码
text_char = ((cipher_char - key_char) % 26) + ord('A')
# 将解密后的字符添加到明文中
plaintext += chr(text_char)
return plaintext
# 示例用法
plaintext = "HELLO"
key = "KEY"
# 加密示例
ciphertext = vigenere_cipher(plaintext, key)
print("密文:", ciphertext)
# 解密示例
decrypted_text = vigenere_decipher(ciphertext, key)
print("解密后的明文:", decrypted_text)
输出:
密文: RIJVS
解密后的明文: HELLO
这段代码定义了两个函数,vigenere_cipher
用于加密文本,vigenere_decipher
用于解密密文。你可以将要加密或解密的文本和密钥作为参数传递给这两个函数。在示例中,我们使用了明文"HELLO"和密钥"KEY"进行加密和解密操作。