在Python中如何实现Vignere密码,代码是什么
在这篇文章中,我们来学习一下“在Python中如何实现Vignere密码,代码是什么”的相关知识,下文有详细的讲解,易于大家学习和理解,有需要的朋友可以借鉴参考,下面就请大家跟着小编的思路一起来学习一下吧。
感谢各位的阅读,以上就是“在Python中如何实现Vignere密码,代码是什么”的内容了,经过本文的学习后,相信大家对在Python中如何实现Vignere密码,代码是什么都有更深刻的体会了吧。这里是博信,小编将为大家推送更多相关知识点的文章,欢迎关注!
目录
Vignere密码 数学方程 Vignere Tableau 实现 代码 输出Vignere密码
Vignere Cipher包含用于加密和解密的Caesar Cipher算法. Vignere Cipher与Caesar Cipher算法类似,只有一个主要区别:Caesar Cipher包含一个字符移位的算法,而Vignere Cipher包含多个字母移位的键.
数学方程
Vignere密码使用多组替换,因此它也被称为polyalphabetic cipher. Vignere Cipher将使用字母键而不是数字键表示:字母A将用于键0,字母B将用于键1,依此类推.加密过程之前和之后的字母数字显示在下面 :
基于Vignere密钥长度的可能密钥数量的可能组合如下,给出了Vignere Cipher算法的安全性的结果 :
Vignere Tableau
用于Vignere密码的画面如下所示 :
实现
让我们了解如何实现Vignere密码.考虑文本这是Vignere密码的基本实现将被编码,使用的密钥是PIZZA.
代码
您可以使用以下代码在Python中实现Vignere密码 :
importpyperclip LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ' defmain(): myMessage="ThisisbasicimplementationofVignereCipher" myKey='PIZZA' myMode='encrypt' ifmyMode=='encrypt': translated=encryptMessage(myKey,myMessage) elifmyMode=='decrypt': translated=decryptMessage(myKey,myMessage) print('%sedmessage:'%(myMode.title())) print(translated) print() defencryptMessage(key,message): returntranslateMessage(key,message,'encrypt') defdecryptMessage(key,message): returntranslateMessage(key,message,'decrypt') deftranslateMessage(key,message,mode): translated=[]#storestheencrypted/decryptedmessagestring keyIndex=0 key=key.upper() forsymbolinmessage: num=LETTERS.find(symbol.upper()) ifnum!=-1: ifmode=='encrypt': num+=LETTERS.find(key[keyIndex]) elifmode=='decrypt': num-=LETTERS.find(key[keyIndex]) num%=len(LETTERS) ifsymbol.isupper(): translated.append(LETTERS[num]) elifsymbol.islower(): translated.append(LETTERS[num].lower()) keyIndex+=1 ifkeyIndex==len(key): keyIndex=0 else: translated.append(symbol) return''.join(translated) if__name__=='__main__': main()
输出
当您实现上面给出的代码时,您可以观察到以下输出;
攻击Vignere密码的可能组合几乎是不可能的.因此,它被视为安全加密模式.
感谢各位的阅读,以上就是“在Python中如何实现Vignere密码,代码是什么”的内容了,经过本文的学习后,相信大家对在Python中如何实现Vignere密码,代码是什么都有更深刻的体会了吧。这里是博信,小编将为大家推送更多相关知识点的文章,欢迎关注!
版权声明
本文仅代表作者观点,不代表博信信息网立场。