python实现仿射密码加解密

仿射密码

仿射密码是一种替换密码。它是一个字母对一个字母的。
它的加密函数是 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
	
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值