Python密码,python维吉尼亚密码加密解密

  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的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: