模数为36的仿射密码python代码实现
时间: 2024-02-21 08:57:31 浏览: 57
fangshemima.rar_affine cipher_atbru_c语言仿射密码_dinner76u_仿射密码C语言
以下是模数为36的仿射密码的Python代码实现:
```
def affine_encrypt(plaintext, key):
"""
仿射密码加密函数
:param plaintext: 明文字符串
:param key: 密钥,为一个二元组 (k, b),k 为密钥整数,b 为偏移量
:return: 密文字符串
"""
k, b = key
ciphertext = ""
for c in plaintext:
if c.isalpha():
x = ord(c) - ord('A')
y = (k * x + b) % 36
ciphertext += chr(y + ord('A'))
elif c.isdigit():
x = int(c)
y = (k * x + b) % 10
ciphertext += str(y)
else:
ciphertext += c
return ciphertext
# 测试
plaintext = "HELLO WORLD 123"
key = (5, 7)
ciphertext = affine_encrypt(plaintext, key)
print("明文:", plaintext)
print("密钥:", key)
print("密文:", ciphertext)
```
这个代码中,我们将模数设置为36,这样可以同时处理大小写字母和数字。具体实现和模数为26的仿射密码类似,只需要对数字的加密方式进行一些调整即可。
阅读全文