cipher="zhongguo"#明文 move=3#移位数 t=""#密文 for i in cipher: if'a'<=i<='z': t+=chr(ord('a')+((ord(i)-ord('a')+move)%26)) elif'A'<=i<='Z': t+=chr(ord('A')+((ord(i)-ord('A')+move)%26)) else: t+=i print(t)
#加密 cipher='zhongguo'#明文 t=''#密文 a=3 b=4#E(x)=ax+b,gcd(a,26) for i in cipher: if'a'<=i<='z': t+=chr(ord('a')+((a*(ord(i)-ord('a'))+b)%26)) elif'A'<=i<='Z': t+=chr(ord('A')+((a*(ord(i)-ord('A'))+b)%26)) else: t+=i print(t)
#解密 t = 'bzurwwmu'# 密文 cipher = ''# 明文 a = 3 b = 4 for i inrange(1, 26): if (i*a) % 26 == 1: a1 = i break for i in t: if'a' <= i <= 'z': cipher += chr(ord('a')+((a1*(ord(i)-ord('a')-b)) % 26)) elif'A' <= i <= 'Z': cipher += chr(ord('A')+((a1*(ord(i)-ord('A')-b)) % 26)) else: cipher += i print(cipher)