Sparrow信息加密工具:基于Python的安全文本加密解决方案
概述
本文介绍了一个基于Python Tkinter和Sparrow加密库开发的文本加密工具。该工具提供了强大的加密功能,支持多种加密模式和压缩选项,适用于保护敏感文本信息。
核心功能
文本加密:将普通文本转换为加密格式
文本解密:将加密文本还原为原始内容
多级压缩:提供三种压缩级别选项
多种加密模式:支持二进制和四进制加密模式
密钥保护:使用密钥保护加密内容
技术架构

用户界面实现
主界面布局
class SparrowStringEncryption(tk.Tk):
def __init__(self):
super().__init__()
self.title("39的信息加密工具")
self.geometry("600x700")
self.resizable(True, True)
# 创建加密/解密实例
self.se = SparrowEncryption()
self.sd = SparrowDecryption()
# 创建主框架
self.main_frame = ttk.Frame(self, padding="20")
self.main_frame.pack(fill=tk.BOTH, expand=True)
# 输入文本区域
self.input_frame = ttk.LabelFrame(self.main_frame, text="输入文本", padding="10")
self.input_frame.pack(fill=tk.BOTH, expand=True, pady=5)
self.input_text = tk.Text(self.input_frame, wrap=tk.WORD, height=6)
self.input_text.pack(fill=tk.BOTH, expand=True)
# 密钥输入区域
self.key_frame = ttk.LabelFrame(self.main_frame, text="加密密钥", padding="10")
self.key_frame.pack(fill=tk.X, pady=5)
self.key_var = tk.StringVar()
ttk.Label(self.key_frame, text="密钥:").pack(side=tk.LEFT, padx=5)
ttk.Entry(self.key_frame, textvariable=self.key_var, show="*", width=40).pack(side=tk.LEFT, padx=5)
# 压缩选项区域
self.compression_frame = ttk.LabelFrame(self.main_frame, text="压缩选项", padding="10")
self.compression_frame.pack(fill=tk.X, pady=5)
self.compression_var = tk.IntVar(value=2)
ttk.Radiobutton(self.compression_frame, text="二次压缩", variable=self.compression_var, value=2).pack(
side=tk.LEFT, padx=10)
ttk.Radiobutton(self.compression_frame, text="一次压缩", variable=self.compression_var, value=1).pack(
side=tk.LEFT, padx=10)
ttk.Radiobutton(self.compression_frame, text="不压缩", variable=self.compression_var, value=0).pack(
side=tk.LEFT, padx=10)
# 加密模式区域
self.mode_frame = ttk.LabelFrame(self.main_frame, text="加密模式", padding="10")
self.mode_frame.pack(fill=tk.X, pady=5)
self.mode_var = tk.IntVar(value=0)
ttk.Radiobutton(self.mode_frame, text="二进制加密", variable=self.mode_var, value=0).pack(side=tk.LEFT, padx=10)
ttk.Radiobutton(self.mode_frame, text="四进制加密", variable=self.mode_var, value=1).pack(side=tk.LEFT, padx=10)
# 操作按钮区域
self.button_frame = ttk.Frame(self.main_frame, padding="10")
self.button_frame.pack(fill=tk.X, pady=5)
ttk.Button(self.button_frame, text="加密", command=self.encrypt_text, width=15).pack(side=tk.LEFT, padx=5)
ttk.Button(self.button_frame, text="解密", command=self.decrypt_text, width=15).pack(side=tk.LEFT, padx=5)
ttk.Button(self.button_frame, text="清空", command=self.clear_all, width=15).pack(side=tk.LEFT, padx=5)
# 输出文本区域
self.output_frame = ttk.LabelFrame(self.main_frame, text="输出结果", padding="10")
self.output_frame.pack(fill=tk.BOTH, expand=True, pady=5)
self.output_text = tk.Text(self.output_frame, wrap=tk.WORD, height=6, state="disabled")
self.output_text.pack(fill=tk.BOTH, expand=True)界面布局说明
+------------------------------------------+
| 39的信息加密工具 |
+------------------------------------------+
| [输入文本] |
| +--------------------------------------+ |
| | | |
| | | |
| | | |
| +--------------------------------------+ |
| |
| [加密密钥] 密钥: [********************] |
| |
| [压缩选项] ●二次压缩 ○一次压缩 ○不压缩 |
| |
| [加密模式] ●二进制加密 ○四进制加密 |
| |
| [操作按钮] [加密] [解密] [清空] |
| |
| [输出结果] |
| +--------------------------------------+ |
| | | |
| | | |
| | | |
| +--------------------------------------+ |
+------------------------------------------+核心功能实现
文本加密功能
def encrypt_text(self):
"""加密文本"""
text = self.get_input_text()
key = self.key_var.get()
if not text:
messagebox.showwarning("警告", "请输入要加密的文本")
return
if not key:
messagebox.showwarning("警告", "请输入加密密钥")
return
try:
# 调用加密方法
encrypted_text = self.se.order_encryption(
string=text,
key=key,
effective_duration=-1, # -1 表示永久有效
is_compression=self.compression_var.get(),
mode=self.mode_var.get()
)
self.set_output_text(encrypted_text)
except Exception as e:
messagebox.showerror("加密错误", f"加密过程中发生错误: {str(e)}")文本解密功能
def decrypt_text(self):
"""解密文本"""
text = self.get_input_text()
key = self.key_var.get()
if not text:
messagebox.showwarning("警告", "请输入要解密的文本")
return
if not key:
messagebox.showwarning("警告", "请输入解密密钥")
return
try:
# 调用解密方法
decrypted_text = self.sd.order_decryption(
decompression=text,
key=key
)
self.set_output_text(decrypted_text)
except Exception as e:
messagebox.showerror("解密错误", f"解密过程中发生错误: {str(e)}")辅助功能
def get_input_text(self):
"""获取输入文本框中的内容"""
return self.input_text.get("1.0", tk.END).strip()
def set_output_text(self, text):
"""设置输出文本框中的内容"""
self.output_text.config(state="normal")
self.output_text.delete("1.0", tk.END)
self.output_text.insert("1.0", text)
self.output_text.config(state="disabled")
def clear_all(self):
"""清空所有文本框"""
self.input_text.delete("1.0", tk.END)
self.set_output_text("")
self.key_var.set("")加密算法详解
Sparrow加密算法特点
多层加密:支持多次压缩和加密操作
多种加密模式:
二进制模式:使用二进制数据进行加密
四进制模式:使用四进制数据进行加密
密钥保护:使用密钥保护加密内容
压缩选项:
二次压缩:最高级别的压缩和加密
一次压缩:中等压缩级别
不压缩:仅进行加密,不压缩数据
加密流程
接收输入文本和密钥
根据选择的压缩级别进行数据压缩
根据选择的加密模式进行数据加密
使用密钥对加密数据进行保护
输出加密结果
解密流程
接收加密文本和密钥
使用密钥验证数据有效性
根据加密模式进行数据解密
根据压缩级别进行数据解压缩
输出原始文本
使用场景
敏感信息保护:加密电子邮件、聊天记录等敏感信息
密码管理:安全存储和管理密码
文件加密:加密文本文件内容
数据传输:保护网络传输中的数据安全
隐私保护:保护个人隐私信息不被泄露
使用示例
示例1:加密文本
在"输入文本"区域输入要加密的内容
在"加密密钥"框中输入密钥(显示为*)
选择压缩级别(推荐"二次压缩")
选择加密模式(推荐"二进制加密")
点击"加密"按钮
加密结果将显示在"输出结果"区域
示例2:解密文本
在"输入文本"区域输入加密内容
在"加密密钥"框中输入加密时使用的密钥
点击"解密"按钮
解密后的原始文本将显示在"输出结果"区域
安全建议
使用强密钥:密钥应包含大小写字母、数字和特殊字符
定期更换密钥:对于重要数据,定期更换加密密钥
选择高级别压缩:对于敏感数据,使用"二次压缩"选项
保护密钥:不要将密钥与加密数据存储在同一位置
离线使用:对于高度敏感数据,建议在离线环境下使用
总结
Sparrow加密工具提供了一个简单而强大的文本加密解决方案,具有以下优势:
易用性:直观的用户界面,操作简单
安全性:使用强大的Sparrow加密算法
灵活性:支持多种加密模式和压缩级别
开源透明:基于Python开发,算法透明可验证
跨平台:可在Windows、MacOS和Linux系统上运行
无论是保护个人隐私还是企业敏感信息,这个工具都能提供可靠的加密解决方案。通过合理的密钥管理和加密策略,可以确保您的数据安全无忧。
下载
信息加解密V1.1.0.0
描述:
可将文本信息进行加解密
下载:
- 感谢你赐予我前进的力量

