python3 tkinter 实现凯撒密码GUI界面
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界面相关推荐
- 使用C#编写带有图形界面的凯撒密码解密和加密
编写的程序有对字符串加密和解密的功能 对字符串的加密即是对每个字符往后偏移K值(例如K为2): A->C C->E a->c c->e Z->B z ...
- python实现凯撒密码加密与解密(暴力求解)
在密码学中,凯撒密码(英语:Caesar cipher),或称凯撒加密.凯撒变换.变换加密,是一种最简单且最广为人知的加密技术.它是一种替换加密的技术,明文中的所有字母都在字母表上向后(或向前)按照一 ...
- Java简易实现凯撒密码——英文句子加密
Java简易实现凯撒密码--英文句子加密 今天要讲的是凯撒密码,它是一种替换加密的技术,明文中的所有字母都在字母表上向后(或向前)按照一个固定数目进行偏移后被替换成密文.例如,当偏移量是3的时候,所有 ...
- python凯撒密码加密写入文件_Python用户名密码登录系统(MD5加密并存入文件,三次输入错误将被锁定)及对字符串进行凯撒密码加解密操作...
#-*- coding: gb2312 -*-#用户名密码登录系统(MD5加密并存入文件)及对字符串进行凯撒密码加解密操作#作者:凯鲁嘎吉 - 博客园 http://www.cnblogs.com/k ...
- 密码学入门1——凯撒密码和三重DES加解密
实验目的 1.完成第一个入门加解密--凯撒密码 2.完成当下较为流行的三重DES加解密技术 3.熟悉所学的实际运用方向 实验准备 硬件:计算机或笔记本电脑 操作系统:Mac操作系统 IDE环境:Ecl ...
- python字母移位_python字母移位,凯撒密码
将字符串中的字符平移n位,就是凯撒密码.比如此处的后移两位,a变为c,z变为b,以此类推,只换字母其它字符不变. #!/usr/bin/python3 str=r"g fmnc wms bg ...
- Python 零基础入门到实战(一)笔记:内置对象、浅拷贝、深拷贝、计算圆面积、凯撒密码、英文大小写转换、输入国家打印出国家名和首都、输入数字英文输出、统计句子中的字母数量、猜随机数
Python入门到实战(一) 为什么写这篇文章 Part 1 入门部分 什么是编程语言? Python的优势 目前应用 特点 Part 2 6种内置对象 1 整数.浮点数 2 字符串 3 列表 4 元 ...
- python凯撒加密代码_解密题(凯撒密码)
在密码学中,恺撒密码(英语:Caesar cipher),或称恺撒加密.恺撒变换.变换加密,是一种最简单且最广为人知的加密技术.它是一种替换加密的技术,明文中的所有字母都在字母表上向后(或向前)按照一 ...
- 凯撒密码(java python)
凯撒密码是对称密码体系的代表,其原理简单点说就是原字母移动k个位置后用k位置处的字母代表之前的字母.下面给出我写的破解凯撒密码体系的初次尝试(暴力破解).程序思路大致就是对密文做适当处理,去掉标点符号 ...
最新文章
- OpenSSH修改版本号教程
- [MATLAB调试笔记]Update the electric field in one step
- Ubuntu安装配置Mysql
- python制作自动回复脚本_python itchat实现微信自动回复的示例代码
- QT学习笔记(十一):QString类
- mysql事务会不会上锁_MySQL事务以及加锁机制
- INIT: vesion 2.88 booting
- 计算机网络第四章总结
- 【数据结构与算法C语言版】基础代码整理 思维导图
- 汇编指令与机器码的相互转换(来自80x86汇编小站)
- JS获取IP地址信息,以及设备信息
- 凤凰职教网计算机一级成绩查询,一-凤凰职教网.PPT
- VS2017大型工厂ERP管理系统源码 工厂通用ERP源码
- as3学习笔记1:Embed嵌入图片
- 服务端接入验证苹果支付receipt
- STM32F103硬件SPI驱动ADS1256
- talib.AROON指标详解
- CSS 第005 背景-理论
- potplayer清晰度设置
- 这些女强人,颠覆了整个世界
热门文章
- C/C++ 工具函数 —— 大端模式和小端模式的互换
- 古谚、评论与论断、名篇与名言
- matlab Tricks(二十七)—— 可变输入参数输出参数的适配
- 奇妙的等式 精妙的证明(二)
- 矩阵手册(四)—— 增广矩阵
- Linux 文件拓展名及文件解压方式
- 反复平方——快速计算一个数的平方
- C++基础——用C++实例理解UML类图
- 常用python内置函数_python常用内置函数
- datagrid不显示 easy_[Easy UI ]DataGrid 首次进入页面时,不加载任何数据