维吉尼亚密码
维吉尼亚密码:维吉尼亚密码(又译维热纳尔密码)是使用一系列凯撒密码组成密码字母表的加密算法,属于多表密码的一种简单形式。
在一个凯撒密码中,字母表中的每一字母都会作一定的偏移,例如偏移量为3时,A就转换为了D、B转换为了E……而维吉尼亚密码则是由一些偏移量不同的恺撒密码组成。
例如:
明文:ATTACKATDAWN
密钥:LEMON
密文:LXFOPVEFRNHR
用数字0-25代替字母A-Z,维吉尼亚密码的加密文法可以写成同余的形式:
解密方法则能写成:
对应表格:
解密:
1 c = input("请输入密文") 2 a = input("请输入密钥") 3 key = [ord(i)-97 for i in a]*b #b是一个适宜的长度 4 m = '' 5 for i in range(len(c)): 6 if c[i].islower: 7 m = m+chr(97+(ord(c[i])-97-key[i])%26) 8 if c[i].isupper: 9 m = m+chr(65+(ord(c[i])-65-key[i])%26) 10 print(m)
利用pycipher:
1 import pycipher 2 pycipher.Vigenere('computer').encipher{'加密的内容'} #加密 3 4 pycipher.Vigenere('computer').decipher{'解密的内容'} #解密
浙公网安备 33010602011771号