当前位置:   article > 正文

Python 实现凯撒密码加解密(界面化)_用python编写的凯撒密码加解密

用python编写的凯撒密码加解密

要实现Python界面化我们首先要引入tkinter库

  1. from tkinter import *
  2. from tkinter.ttk import Combobox

先是自定义函数实现凯撒密码,这部分比较简单

恺撒密码的替换方法是通过排列明文和密文字母表,密文字母表示通过将明文字母表向左或向右移动一个固定数目的位置。例如,当偏移量是左移3的时候(解密时的密钥就是3),这时可以使用rot3来表示:

明文字母表:ABCDEFGHIJKLMNOPQRSTUVWXYZ 

密文字母表:DEFGHIJKLMNOPQRSTUVWXYZABC

  1. def kaisa(event):
  2. key=int(t1.get()) //偏移量
  3. message=str(t2.get()).upper() //密文
  4. dic={0:'加密',1:'解密'}
  5. model=dic[comb.current()]
  6. letter='ABCDEFGHIJKLMNOPQRSTUVWXYZ'
  7. sult=''
  8. for i in message:
  9. if i in letter:
  10. num=letter.find(i)
  11. if model=='加密':
  12. num=num+key
  13. if model=='解密':
  14. num=num-key
  15. if num>=len(letter):
  16. num=num-len(letter)
  17. if num<0:
  18. num=num+len(letter)
  19. sult=sult+letter[num]
  20. else:
  21. sult=sult+i
  22. lib.config(text=str(sult)) //输出结果

接下来就是写界面 ,我们用到Tk库中的一些函数来实现,具体函数用法大家可以去官网学习,这里放出我的代码,第一次用这个库界面不是很美观,大家可以调整

  1. root = Tk()
  2. root.title('凯撒密码')
  3. root.geometry('500x400')
  4. t1=Entry(root)
  5. t1.place(relx=0.2,rely=0.1,relwidth=0.2,relheight=0.05)
  6. t1.insert(5,'输入偏移量')
  7. t2=Entry(root)
  8. t2.place(relx=0.2,rely=0.2,relwidth=0.6,relheight=0.05)
  9. t2.insert(5,'输入字符串')
  10. var=StringVar()
  11. comb=Combobox(root,textvariable=var,values=['加密','解密'])
  12. comb.place(relx=0.2,rely=0.3,relwidth=0.2,relheight=0.1)
  13. b1=Button(root,text='运行')
  14. b1.place(relx=0.2,rely=0.4,relwidth=0.2,relheight=0.1)
  15. b1.bind('<1>',kaisa)
  16. lib=Label(root,text='结果')
  17. lib.place(relx=0.2,rely=0.6,relwidth=1,relheight=0.3)
  18. root.mainloop()

这就是最后运行的界面

 

 

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/AllinToyou/article/detail/496456
推荐阅读
相关标签
  

闽ICP备14008679号