python实现维尼吉亚密码

来源:互联网 发布:dnf哪里数据芯片多 编辑:程序博客网 时间:2024/06/02 05:11

一 代码

  1. #key='relations'
  2. #plaintext='tomorrowiwillhaveagood'
  3. key='helloworld'
  4. plaintext=input('请输入明文:')
  5. ascii='abcdefghijklmnopqrstuvwxyz'
  6. keylen=len(key)
  7. ptlen=len(plaintext)
  8. ciphertext =''
  9. i =0
  10. while i < ptlen:
  11. j = i % keylen
  12. k = ascii.index(key[j])
  13. m = ascii.index(plaintext[i])
  14. ciphertext += ascii[(m+k)%26]
  15. i +=1
  16. print(ciphertext)
  17. #维吉尼亚加密算法 解密
  18. key='helloworld'
  19. ciphertext=input('请输入密文:')
  20. ascii='abcdefghijklmnopqrstuvwxyz'
  21. keylen=len(key)
  22. ctlen=len(ciphertext)
  23. plaintext =''
  24. i =0
  25. while i < ctlen:
  26. j = i % keylen
  27. k = ascii.index(key[j])
  28. m = ascii.index(ciphertext[i])
  29. if m < k:
  30. m +=26
  31. plaintext += ascii[m-k]
  32. i +=1
  33. print(plaintext)
二 运行结果
请输入明文:tomorrowiwillhaveagood
asxzfncntzppwsorsrrrvh
请输入密文:asxzfncntzppwsorsrrrvh
tomorrowiwillhaveagood
原创粉丝点击