仿射密码
仿射密码是一种替换密码。它是一个字母对一个字母的。
它的加密函数是 Ek(x)=(k1x+k2) mod n(其中k1和n互质,n是字母的数目)
解码函数是 Dk(x)=ny(x- k2) mod n (其中ny代表逆元,满足(k1*ny) mod n = 1)
代码实现
因为用到文件交互,所以需把密码文件和此算法放在同一文件夹中,或者修改代码里面的密码文件路径。
#仿射密码加密与解密实现算法
# -*- coding=utf-8 -*-
#输入密钥
def accept():
k1,k2 = map(int,input('请输入两个密钥(以空格隔开):').split())
while gcd(k1, 26) !=1:
k1,k2 = map(int,input('k1和26不互素,请重新输入密钥:').split())
return k1,k2
#判断互素
def gcd(k1,m):
t = 0
while m!=0:
t = m
m = k1%m
k1 = t
return k1
#求逆元
def niyuan(k1):
n = 1


1万+

被折叠的 条评论
为什么被折叠?



