Python实现基于SHA1、SHA256、MD5的可视化hash计算

题外话:代码主体由AI完成,输入需求后开始撸python代码,剩下的就是一点点调试功能和样式了

准备工作

  1. Python 3.12.4(华为镜像下载,https://mirrors.huaweicloud.com/python/
  2. Notepad++:网上搜的任意版本都可以
  3. 配置notepad++:编写python后Ctrl+S保存.py文件,F5运行选择python安装目录下的python.exe或输入“python路径\python.exe "$(FULL_CURRENT_PATH)" & ECHO. & PAUSE & EXIT”,双引号中间为自己的python路径,保存设置快捷键F10,后期编辑按设置的快捷键F10即可运行
  4. pyinstaller:exe打包工具,cmd命令行输入 pip install pyinstaller 安装即可

Python代码

import hashlib
import os
import tkinter as tk
from tkinter import filedialog

def calculate_hash(file_path, algorithm):
    if os.path.isfile(file_path):
        with open(file_path, 'rb') as f:
            data = f.read()
            if algorithm == 'SHA256':
                hash_value = hashlib.sha256(data).hexdigest()
            elif algorithm == 'SHA1':
                hash_value = hashlib.sha1(data).hexdigest()
            elif algorithm == 'MD5':
                hash_value = hashlib.md5(data).hexdigest()
            return hash_value
    else:
        return "文件不存在"

def update_hash(text_path, text_hash, algorithm_var):
    file_path = text_path.get("1.0", tk.END).strip()
    algorithm = algorithm_var.get()
    hash_value = calculate_hash(file_path, algorithm)
    text_hash.delete("1.0", tk.END)
    text_hash.insert(tk.END, hash_value)

def browse_file(text_path):
    file_path = filedialog.askopenfilename()
    text_path.delete("1.0", tk.END)
    text_path.insert(tk.END, file_path)

root = tk.Tk()
root.title("哈希计算工具 By Johnny.Z")

# 第一行:选择文件按钮和文件路径输入框
browse_button = tk.Button(root, text="选择文件", width=15, command=lambda: browse_file(text_path))
browse_button.grid(row=0, column=0, padx=10, pady=10)
text_path = tk.Text(root, width=50, height=2, wrap=tk.WORD)
text_path.grid(row=0, column=1, padx=10, pady=10)

# 第二行:三个算法选择按钮
algorithm_var = tk.StringVar()
algorithm_var.set('SHA256')  # 默认选中 SHA256

frame = tk.Frame(root)  # 创建一个框架来容纳按钮
frame.grid(row=1, column=0, columnspan=2, padx=10, pady=10)  # 框架占据两列

sha256_button = tk.Radiobutton(frame, text="SHA256", variable=algorithm_var, value='SHA256')
sha256_button.pack(side=tk.LEFT, padx=10)

sha1_button = tk.Radiobutton(frame, text="SHA1", variable=algorithm_var, value='SHA1')
sha1_button.pack(side=tk.LEFT, padx=10)

md5_button = tk.Radiobutton(frame, text="MD5", variable=algorithm_var, value='MD5')
md5_button.pack(side=tk.LEFT, padx=10)

# 第三行:计算哈希值按钮和哈希值输入框
calculate_button = tk.Button(root, text="计算哈希值", width=15, command=lambda: update_hash(text_path, text_hash, algorithm_var))
calculate_button.grid(row=2, column=0, padx=10, pady=10)
text_hash = tk.Text(root, width=50, height=2, wrap=tk.WORD)
text_hash.grid(row=2, column=1, padx=10, pady=10)

root.mainloop()

打包exe独立程序

在py文件目录地址栏输入cmd,输入以下命令打包exe,如要改exe程序logo,在py同目录自备logo.ico文件,最终exe文件在dist文件夹下

  1. pyinstaller -F test.py -ntest #打包不带logo的exe

  2. pyinstaller -F -w -i logo.ico test.py -ntest #打包带logo的exe

运行界面见下图

  • 3
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Johnny|俊伟

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值