defVigenere_encryption(m:str, k:str):
c =''
m_len =len(m)
k_len =len(k)
ord_a =ord('a')for i inrange(m_len):
c +=chr((ord(m[i])-ord_a+ord(k[i % k_len])-ord_a)%26+ord_a)return c
defVigenere_decryption(c:str, k:str):
m =''
c_len =len(c)
k_len =len(k)
ord_a =ord('a')for i inrange(c_len):
m +=chr((ord(c[i])-ord(k[i % k_len]))%26+ord_a)return m
测试
key ='abcdz'
text ='abcde'
c = Vigenere_encryption(text, key)
m = Vigenere_decryption(c, key)print(c)print(m)