埃特巴什码加解密小程序

server/2024/10/19 7:28:05/

埃特巴什码加解密小程序

这几天在看CTF相关的课程,涉及到古典密码学和近代密码学还有现代密码学。

简单替换密码

Atbash Cipher

埃特巴什码(Atbash Cipher)其实可以视为下面要介绍的简单替换密码的特例,它使用字母表中的最后 一个字母代表第一个字母,倒数第二个字母代表第二个字母。在罗马字母表中,它是这样出现的:

python">ABCDEFGHIJKLMNOPQRSTUVWXYZ 明码表 
ZYXWVUTSRQPONMLKJIHGFEDCBA 密码表

比如埃 码

python">明文:the quick brown fox jumps over the lazy dog 
密文:gsv jfrxp yildm ulc qfnkh levi gsv ozab wlt

按照上面的规则,我编了一个小工具。源码如下:

python">import tkinter as tk
from tkinter import messagebox
code_dict  = {'A': 'Z', 'B': 'Y', 'C': 'X', 'D': 'W', 'E': 'V', 'F': 'U', 'G': 'T', 'H': 'S', 'I': 'R', 'J': 'Q', 'K': 'P', 'L': 'O', 'M': 'N', 'N': 'M', 'O': 'L', 'P': 'K', 'Q': 'J', 'R': 'I', 'S': 'H', 'T': 'G', 'U': 'F', 'V': 'E', 'W': 'D', 'X': 'C', 'Y': 'B', 'Z': 'A'}def encrypt(plaintext):ciphertext = ''for char in plaintext.upper():if char.isalpha():ciphertext += code_dict.get(char, '')else:ciphertext += charreturn ciphertextdef decrypt(ciphertext):plaintext = ''for char in ciphertext.upper():if char.isalpha():for k, v in code_dict.items():if char == v:plaintext += kelse:plaintext += charreturn plaintextclass CaesarCipherGUI:def __init__(self, master):self.master = mastermaster.title("埃特巴什码加解密--微信号强壮Python")# Create a frame to hold the input and output fieldsself.frame = tk.Frame(master)self.frame.pack(fill=tk.BOTH, expand=1)# Create the input fieldself.input_label = tk.Label(self.frame, text="输入信息", anchor='w', justify='left')self.input_label.pack()self.input_entry = tk.Entry(self.frame, width=40, justify='left')self.input_entry.pack()# Create the buttonsself.button_frame = tk.Frame(self.frame)self.button_frame.pack(fill=tk.X)self.encrypt_button = tk.Button(self.button_frame, text="加 密", command=self.encrypt_message)self.encrypt_button.pack(side='left', padx=5)self.decrypt_button = tk.Button(self.button_frame, text="解 密", command=self.decrypt_message)self.decrypt_button.pack(side='left', padx=25)# Create the output fieldself.output_label = tk.Label(self.frame, text="输 出", anchor='w')self.output_label.pack()self.output_text = tk.Text(self.frame, width=52, height=10, wrap='word')self.output_text.pack()def encrypt_message(self):plaintext = self.input_entry.get()ciphertext = encrypt(plaintext).lower()self.output_text.delete('1.0', tk.END)self.output_text.insert('1.0', ciphertext)def decrypt_message(self):ciphertext = self.input_entry.get()plaintext = decrypt(ciphertext).lower()self.output_text.delete('1.0', tk.END)self.output_text.insert('1.0', plaintext)root = tk.Tk()
my_gui = CaesarCipherGUI(root)
root.mainloop()

备注:界面是用AI生成,稍加修改。

运行结果如下图:

Screenshot 2024-06-25 at 22.24.10


http://www.ppmy.cn/server/52778.html

相关文章

JCR一区 | Matlab实现GAF-PCNN、GASF-CNN、GADF-CNN的多特征输入数据分类预测/故障诊断

JJCR一区 | Matlab实现GAF-PCNN、GASF-CNN、GADF-CNN的多特征输入数据分类预测/故障诊断 目录 JJCR一区 | Matlab实现GAF-PCNN、GASF-CNN、GADF-CNN的多特征输入数据分类预测/故障诊断分类效果格拉姆矩阵图GAF-PCNNGASF-CNNGADF-CNN 基本介绍程序设计参考资料 分类效果 格拉姆…

数据通信与网络(五)

交换机功能: 地址学习(端口/MAC地址映射表) 通信过滤(基于端口/MAC地址映射表) 生成树协议(断开环路) 隔离冲突域 生成树协议 隔离冲突域 交换机配置模式(用不同级别的命令对交换机进行配置) 普…

Vue2配置前端代理

在8080向5000请求数据 clivue2 一、cli内配置前端代理 1、使用 发送请求时写8080 在配置文件中配置 vue.config.js 2、缺点 无法配置多个代理无法控制某个请求知否要代理 二、方式二 module.exports {devServer: {proxy: {/api1:{ //匹配所有以/api1开头的请求路径…

(四十三)Vue Router之嵌套路由

文章目录 什么是嵌套路由嵌套路由的使用demo 上一篇:(四十二)Vue之路由及其基本使用Vue Router 下一篇:(四十四)Vue Router的命名路由和路由组件传参 什么是嵌套路由 实际生活中的应用界面,有…

IPv6 中 MAC 33:33 的由来

一、33:33 由来 1. RFC9542 - 2024-05-02 Note IANA allocates addresses under the IANA OUI (00-00-5E) as explained in [RFC9542]. Unicast addresses under the IANA OUI start with 00-00-5E, while multicast addresses under the IANA OUI start with 01-00-5E. In t…

testRigor:基于人工智能的自动化测试工具

testRigor:基于人工智能的自动化测试工具 概述支持平台支持测试类型快速入门注册登录创建测试 核心特性优势分析 概述 testRigor是一款基于人工智能驱动的无代码自动化测试平台,它能够自动生成测试用例,无需人工编写测试脚本。它能通过分析应…

GPT_AI高速发展中什么是Prompt提示词?

提示词(Prompt)是给大语言模型(以下简称模型)的输入文本,用于指定模型应该执行什么样的任务并生成什么样的输出。 提示词发挥了“提示” 模型 应该做什么的作用。设计高质量的提示词需要根据目标任务和模型能力进行精…

tensorflow学习:错误 InternalError: Dst tensor is not initialized

tensorflow学习:错误 InternalError: Dst tensor is not initialized_dst tensor is not initialized.-CSDN博客https://blog.csdn.net/wanglitao588/article/details/77033659