维吉尼亚密码表
=============================================
#维吉尼亚密码 加密
key=‘helloworld‘
plaintext=‘whereisthekey‘
#key=‘relations‘
#plaintext=‘tobeornottobeth‘
ascii=‘abcdefghijklmnopqrstuvwxyz‘
keylen=len(key)
ptlen=len(plaintext)
ciphertext = ‘‘
i = 0
while i < ptlen:
j = i % keylen
k = ascii.index(key[j])
m = ascii.index(plaintext[i])
ciphertext += ascii[(m+k)%26]
i += 1
print ciphertext
===================================================================
#维吉尼亚加密算法 解密
key=‘helloworld‘
ciphertext=‘dlpcsegkshrij‘
#key=‘relations‘
#ciphertext=‘ksmehzbblk‘
ascii=‘abcdefghijklmnopqrstuvwxyz‘
keylen=len(key)
ctlen=len(ciphertext)
plaintext = ‘‘
i = 0
while i < ctlen:
j = i % keylen
k = ascii.index(key[j])
m = ascii.index(ciphertext[i])
if m < k:
m += 26
plaintext += ascii[m-k]
i += 1
print plaintext
本文出自 “个人记录” 博客,请务必保留此出处http://whbill.blog.51cto.com/3280780/1726430
原文地址:http://whbill.blog.51cto.com/3280780/1726430