Codes

import tkinter as tk
from tkinter import messageboxclass Kaisa():def __init__(self):  # 构造函数self.window = tk.Toplevel() #Toplevel 子窗口self.input = tk.StringVar()self.output = tk.StringVar()self.key = tk.StringVar()self.dzb = ""  # 对照表def set_window(self):self.window.title("凯撒密码")self.window.geometry('400x250')tk.Label(self.window, text="请输入明文/密文:").place(x=50, y=40)tk.Label(self.window, text="请输入位移数:").place(x=50, y=80)tk.Label(self.window, text="输出结果:").place(x=50, y=160)tk.Label(self.window, textvariable=self.output,bg='red').place(x=50, y=200)tk.Entry(self.window, textvariable=self.input).place(x=150, y=40)tk.Entry(self.window, textvariable=self.key,width=2).place(x=150, y=80)self.key.set(3)tk.Button(self.window, bg='lightgreen', activebackground='yellow',text='加密', font=20, command=self.encode).place(x=80, y=120)tk.Button(self.window, bg='lightgreen', activebackground='yellow',text='解密', font=20, command=self.decode).place(x=170, y=120)tk.Button(self.window, bg='yellow', activebackground='green',text='确定', font=20, command=self.getdzb).place(x=200, y=80)self.window.mainloop()def getdzb(self):k = int(self.key.get())#print(k)if(k < 0 or k > 25):messagebox.showwarning(title='警告', message='密钥需要在0-25之间')returnself.dzb = ""for i in range(0, 26):if i+k < 26:self.dzb += chr(i+k+97)else:self.dzb += chr(i+k+97-26)print(self.dzb)def encode(self):input = self.input.get()  # 局部变量input = input.lower()if not(input.isalpha()):  # 只由字母组成messagebox.showwarning(title='警告', message='你输入的明文不正确')returnres = ""for ch in input:res += self.dzb[int(ord(ch))-97]  # 数值-97self.output.set(res)def decode(self):input = self.input.get()input = input.lower()if not(input.isalpha()):messagebox.showwarning(title='警告', message='你输入的密文不正确')returnres = ""for ch in input:res += chr((self.dzb.find(ch))+97)self.output.set(res)class Content():def __init__(self):self.window = tk.Tk() #Tk()顶级窗口+初始化def set_window(self):self.window.title("古典加密系列")self.window.geometry('600x400')tk.Button(self.window,text="凯撒密码",font=40,command=self.ks).place(x=140,y=100)#tk.Button(self.window,text="单码密码",font=40, command=self.dm).place(x=250,y=100)#tk.Button(self.window,text="乘法逆元对",font=40,command=self.Cf).place(x=360,y=100)#tk.Button(self.window,text="Hill加密",font=40,command=self.hill).place(x=140,y=210)#tk.Button(self.window,text="同余代换",font=40,command=self.Ty).place(x=250,y=210)#tk.Button(self.window,text="判断素数",font=40,command=self.sushu).place(x=360,y=210)self.window.mainloop()def ks(self):x = Kaisa()x.set_window()if __name__ == '__main__':content = Content()content.set_window()



python3 tkinter 实现凯撒密码GUI界面相关推荐

  1. 使用C#编写带有图形界面的凯撒密码解密和加密

    编写的程序有对字符串加密和解密的功能 对字符串的加密即是对每个字符往后偏移K值(例如K为2): A->C    C->E   a->c   c->e Z->B     z ...

  2. python实现凯撒密码加密与解密(暴力求解)

    在密码学中,凯撒密码(英语:Caesar cipher),或称凯撒加密.凯撒变换.变换加密,是一种最简单且最广为人知的加密技术.它是一种替换加密的技术,明文中的所有字母都在字母表上向后(或向前)按照一 ...

  3. Java简易实现凯撒密码——英文句子加密

    Java简易实现凯撒密码--英文句子加密 今天要讲的是凯撒密码,它是一种替换加密的技术,明文中的所有字母都在字母表上向后(或向前)按照一个固定数目进行偏移后被替换成密文.例如,当偏移量是3的时候,所有 ...

  4. python凯撒密码加密写入文件_Python用户名密码登录系统(MD5加密并存入文件,三次输入错误将被锁定)及对字符串进行凯撒密码加解密操作...

    #-*- coding: gb2312 -*-#用户名密码登录系统(MD5加密并存入文件)及对字符串进行凯撒密码加解密操作#作者:凯鲁嘎吉 - 博客园 http://www.cnblogs.com/k ...

  5. 密码学入门1——凯撒密码和三重DES加解密

    实验目的 1.完成第一个入门加解密--凯撒密码 2.完成当下较为流行的三重DES加解密技术 3.熟悉所学的实际运用方向 实验准备 硬件:计算机或笔记本电脑 操作系统:Mac操作系统 IDE环境:Ecl ...

  6. python字母移位_python字母移位,凯撒密码

    将字符串中的字符平移n位,就是凯撒密码.比如此处的后移两位,a变为c,z变为b,以此类推,只换字母其它字符不变. #!/usr/bin/python3 str=r"g fmnc wms bg ...

  7. Python 零基础入门到实战(一)笔记:内置对象、浅拷贝、深拷贝、计算圆面积、凯撒密码、英文大小写转换、输入国家打印出国家名和首都、输入数字英文输出、统计句子中的字母数量、猜随机数

    Python入门到实战(一) 为什么写这篇文章 Part 1 入门部分 什么是编程语言? Python的优势 目前应用 特点 Part 2 6种内置对象 1 整数.浮点数 2 字符串 3 列表 4 元 ...

  8. python凯撒加密代码_解密题(凯撒密码)

    在密码学中,恺撒密码(英语:Caesar cipher),或称恺撒加密.恺撒变换.变换加密,是一种最简单且最广为人知的加密技术.它是一种替换加密的技术,明文中的所有字母都在字母表上向后(或向前)按照一 ...

  9. 凯撒密码(java python)

    凯撒密码是对称密码体系的代表,其原理简单点说就是原字母移动k个位置后用k位置处的字母代表之前的字母.下面给出我写的破解凯撒密码体系的初次尝试(暴力破解).程序思路大致就是对密文做适当处理,去掉标点符号 ...

最新文章

  1. OpenSSH修改版本号教程
  2. [MATLAB调试笔记]Update the electric field in one step
  3. Ubuntu安装配置Mysql
  4. python制作自动回复脚本_python itchat实现微信自动回复的示例代码
  5. QT学习笔记(十一):QString类
  6. mysql事务会不会上锁_MySQL事务以及加锁机制
  7. INIT: vesion 2.88 booting
  8. 计算机网络第四章总结
  9. 【数据结构与算法C语言版】基础代码整理 思维导图
  10. 汇编指令与机器码的相互转换(来自80x86汇编小站)
  11. JS获取IP地址信息,以及设备信息
  12. 凤凰职教网计算机一级成绩查询,一-凤凰职教网.PPT
  13. VS2017大型工厂ERP管理系统源码 工厂通用ERP源码
  14. as3学习笔记1:Embed嵌入图片
  15. 服务端接入验证苹果支付receipt
  16. STM32F103硬件SPI驱动ADS1256
  17. talib.AROON指标详解
  18. CSS 第005 背景-理论
  19. potplayer清晰度设置
  20. 这些女强人,颠覆了整个世界

热门文章

  1. C/C++ 工具函数 —— 大端模式和小端模式的互换
  2. 古谚、评论与论断、名篇与名言
  3. matlab Tricks(二十七)—— 可变输入参数输出参数的适配
  4. 奇妙的等式 精妙的证明(二)
  5. 矩阵手册(四)—— 增广矩阵
  6. Linux 文件拓展名及文件解压方式
  7. 反复平方——快速计算一个数的平方
  8. C++基础——用C++实例理解UML类图
  9. 常用python内置函数_python常用内置函数
  10. datagrid不显示 easy_[Easy UI ]DataGrid 首次进入页面时,不加载任何数据