維吉尼亞密碼


維吉尼亞密碼:維吉尼亞密碼(又譯維熱納爾密碼)是使用一系列凱撒密碼組成密碼字母表的加密算法,屬於多表密碼的一種簡單形式。

在一個凱撒密碼中,字母表中的每一字母都會作一定的偏移,例如偏移量為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)

 

 在線加密解密:http://www.metools.info/code/c71.html

 
利用pycipher:
1 import pycipher
2 pycipher.Vigenere('computer').encipher{'加密的內容'}  #加密
3 
4 pycipher.Vigenere('computer').decipher{'解密的內容'}   #解密

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM