Python密码,python维吉尼亚密码加密解密
本文主要为大家介绍python密码学的Vignere密码教程。有需要的朋友可以借鉴一下,希望能有所帮助。祝大家进步很大,早日升职加薪。
目录
Vignere密码数学方程Vignere Tableau实现代码输出
Vignere密码
Vignere Cipher包含用于加密和解密的凯撒密码算法。Vignere密码类似于Caesar密码算法,只有一个主要区别:Caesar密码包含一个字符移位算法,而Vignere密码包含几个带字母移位的密钥。
数学方程
Vignere密码使用多组替换,因此也被称为多字母密码。Vignere cipher会用字母键代替数字键来表示3360。字母A将用于键0,字母B将用于键1,依此类推。下面的3360显示了加密过程前后的字母数字。
基于Vignere密钥长度的可能密钥数的可能组合如下,给出Vignere密码算法安全性的结果:
Vignere Tableau
用于输入密码的屏幕如下:3360
实现
让我们知道如何实现Vignere密码。考虑文本。这是Vignere密码的基本实现。会被编码,使用的密钥是披萨。
代码
您可以使用以下代码在Python中实现Vignere密码3360
importpyperclip
LETTERS= ABCDEFGHIJKLMNOPQRSTUVWXYZ
defmain():
my message= thisisbisimplementationofvignerecipher
myKey=PIZZA
myMode=encrypt
ifmyMode==encrypt:
translated=encrypt message(my key,myMessage)
elifmyMode==decrypt:
translated=decrypt message(my key,myMessage)
print( % sed message : %(my mode . title()))
打印(翻译)
打印()
defencryptMessage(密钥,消息):
returntranslateMessage(密钥,消息,“加密”)
defdecryptMessage(key,message):
returntranslateMessage(密钥,消息,“解密”)
deftranslateMessage(键,消息,模式):
translated=[]# storestheencrypted/decrypted messagestring
keyIndex=0
key=key.upper()
对于符号消息:
num=LETTERS.find(symbol.upper())
ifnum!=-1:
ifmode==encrypt:
num=LETTERS.find(key[keyIndex])
elifmode==decrypt:
num-=letters . find(key[key index])
num%=len(字母)
ifsymbol.isupper():
translated.append(字母[数字])
elifsymbol.islower():
translated.append(字母[数字]。下限())
keyIndex=1
ifkeyIndex==len(key):
keyIndex=0
else:
translated.append(符号)
返回“”。加入(已翻译)
if__name__==__main__:
主()
输出
当您实现上面给出的代码时,您可以观察到以下输出:
几乎不可能攻击Vignere密码的可能组合。因此,它被视为一种安全的加密模式。
以上是python Cryptography Vignere密码学教程的详细内容。更多关于python Cryptography Vignere的信息,请关注盛行IT软件开发工作室的其他相关文章!
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。