Python 实现凯撒密码加解密(界面化)

news/2024/11/7 22:37:01/

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

from tkinter import *
from tkinter.ttk import Combobox

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

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

明文字母表:ABCDEFGHIJKLMNOPQRSTUVWXYZ 

密文字母表:DEFGHIJKLMNOPQRSTUVWXYZABC

def kaisa(event):key=int(t1.get())                        //偏移量message=str(t2.get()).upper()            //密文dic={0:'加密',1:'解密'}model=dic[comb.current()]letter='ABCDEFGHIJKLMNOPQRSTUVWXYZ'sult=''for i in message:if i in letter:num=letter.find(i)if model=='加密':num=num+keyif model=='解密':num=num-keyif num>=len(letter):num=num-len(letter)if num<0:num=num+len(letter)sult=sult+letter[num]else:sult=sult+ilib.config(text=str(sult))  //输出结果

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

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

这就是最后运行的界面

 

 


http://www.ppmy.cn/news/839575.html

相关文章

加密和解密的秘密

密码学的知识 明文&#xff1a; 明文指的是未被加密过的原始数据。 密文&#xff1a; 明文被某种加密算法加密之后&#xff0c;会变成密文&#xff0c;从而确保原始数据的安全。密文也可以被解密&#xff0c;得到原始的明文。 密钥&#xff1a; 密钥是一种参数&#xff0…

FinalShell密码解密

FinalShell,linux服务器修改密码后忘记密码&#xff0c;在配置文件中找到加密后的密码&#xff0c;可用下列方法解密 import org.apache.commons.codec.digest.DigestUtils; import javax.crypto.Cipher; import javax.crypto.SecretKey; import javax.crypto.SecretKeyFactor…

W密码解密算法

栅栏密码 文章目录 栅栏密码条形栅栏密码加密算法解密算法 W形栅栏密码WWW加密算法设计WWW解密算法推导确定字符对各行的分配规则cnt数组定义"周期"如果 c n t p h a s e cnt_{phase} cntphase​是一个偶数如果 c n t p h a s e cnt_{phase} cntphase​是一个奇数奇数…

C语言实现凯撒密码加解密

凯撒密码 加密即把a-z或A-Z的字母向后移动n个字符实现加密&#xff0c;若n3的话&#xff0c;a对应d&#xff0c;z对应c&#xff0c;如此循环&#xff1b;解密刚好和加密相反&#xff0c;加密向后移动的话解密就向前移动。 加密的C代码如下&#xff1a; #include <stdio.h&…

ctf密码学加解密

base编码&#xff1a; 在字符串后看到&#xff1a;&#xff0c;很可能是base64编码 编码格式base16大写字母A-F和0-9base32大写字母A-Z和数字2-7base58大小写字母和数字去除0(零)和O(大写o)、I(大写i)和l(小写L)base64大小写字母和数字0-9以及"" "/"base…

凯撒密码加解密实现(python)

Caesar&#xff08;凯撒密码&#xff09; 原理 凯撒密码&#xff08;Caesar&#xff09;加密时会将明文中的 每个字母 都按照其在字母表中的顺序向后&#xff08;或向前&#xff09;移动固定数目&#xff08;循环移动&#xff09;作为密文。例如&#xff0c;当偏移量是左移 3…

维吉尼亚密码加解密

西安电子科技大学Python程序设计上机实验——维吉尼亚密码加解密 维吉尼亚密码是使用一系列凯撒密码组成密码字母表的加密算法&#xff0c;属于多表密码的一种简单形式。为了生成密码&#xff0c;需要使用表格法。这一表格包括了 26 行字母表&#xff0c;每一行都由前一行向左…

加密解密

//加密解密 public class GF_Encrypt { /// <summary> /// DES加密 /// </summary> /// <param name"pToEncrypt">加密字符串</param> /// <param name"sKey">密钥</param> /// <returns></returns> publ…