Skip to content

Releases: duma520/MD5CalculatorApp

v2.5

Choose a tag to compare

@duma520 duma520 released this 21 May 02:02
5925ecc

修正一些BUG
改成Qt5方案

v1.3.8

Choose a tag to compare

@duma520 duma520 released this 09 Apr 19:37
9caac01

可能是终结版,因为没什么需要更新的了,除了拖拽文件目录问题还没解决。

详细更新看首页说明书吧。

v1.3.4

Choose a tag to compare

@duma520 duma520 released this 09 Apr 16:50
9caac01

比对无限颜色,表头排序

image

v1.3.0

Choose a tag to compare

@duma520 duma520 released this 09 Apr 13:21
3b4d0ee

专业哈希计算工具 - 使用说明书

作者:杜玛

版权永久所有


目录

  1. 简介
  2. 功能概述
  3. 安装与运行
  4. 基本使用
  5. 详细功能介绍
  6. 高级功能
  7. 常见问题
  8. 技术细节
  9. 更新日志

简介

专业哈希计算工具是一款功能强大的文件校验工具,支持多种哈希算法(MD5、SHA1、SHA256、SHA512),可用于验证文件完整性、检测重复文件、比对文件哈希值等。本工具具有直观的用户界面,支持拖拽操作,适合各类用户使用。


功能概述

主要功能

  • 支持多种哈希算法计算
  • 文本、文件、多文件和目录哈希计算
  • 哈希值比对功能
  • 自动检测重复文件
  • 历史记录功能
  • 结果导出功能
  • 深色/浅色主题切换
  • 自适应布局

适用人群

  • 普通用户:验证下载文件的完整性
  • 开发人员:校验程序文件
  • 系统管理员:批量检查文件一致性
  • 安全人员:文件指纹分析

安装与运行

系统要求

  • Windows 操作系统
  • Python 3.6 或更高版本

安装方法

  1. 确保已安装Python环境
  2. 下载程序文件(MD5CalculatorApp.py)
  3. 可选:安装依赖库
    pip install tkinterdnd2 pyinstaller
    

运行方式

  • 直接运行:
    python MD5CalculatorApp.py
    
  • 打包为EXE:
    pyinstaller -w MD5CalculatorApp.py
    

基本使用

1. 选择输入方式

  • 文本输入:直接输入文本内容计算哈希
  • 文件输入:计算单个文件的哈希值
  • 多文件输入:批量计算多个文件的哈希值
  • 目录输入:计算整个目录下文件的哈希值

2. 选择哈希算法

从下拉菜单中选择:MD5、SHA1、SHA256或SHA512

3. 计算哈希

点击"计算哈希"按钮开始计算

4. 查看结果

计算结果将显示在右侧面板中


详细功能介绍

文本哈希计算

  1. 选择"文本输入"方式
  2. 在文本框中输入内容
  3. 点击"计算哈希"
  4. 结果将显示在右侧

示例:计算"Hello World"的MD5值

文件哈希计算

  1. 选择"文件输入"方式
  2. 点击"浏览..."选择文件或直接拖拽文件到输入框
  3. 点击"计算哈希"
  4. 结果将显示文件名和对应的哈希值

专业说明:大文件采用分块计算方式,避免内存溢出

多文件哈希计算

  1. 选择"多文件输入"方式
  2. 通过"添加文件"或拖拽方式添加多个文件
  3. 点击"计算哈希"
  4. 结果将以表格形式显示

技巧:按住Ctrl键可多选文件

目录哈希计算

  1. 选择"目录输入"方式
  2. 点击"浏览..."选择目录或直接拖拽目录
  3. 设置文件过滤条件(可选)
  4. 点击"计算哈希"
  5. 结果将以表格形式显示

高级选项:

  • 包含子目录
  • 按扩展名过滤

高级功能

哈希比对

  1. 勾选"比对模式"
  2. 输入目标哈希值
  3. 计算后会自动显示比对结果
    • 匹配:绿色显示
    • 不匹配:红色显示

应用场景:验证下载文件是否被篡改

重复文件检测

  1. 勾选"自动检测重复"
  2. 计算多文件或目录哈希
  3. 相同哈希值的文件会以黄色背景标记

专业建议:用于磁盘清理,找出重复文件

历史记录

  • 自动保存最近50条计算记录
  • 可通过"工具"菜单查看历史
  • 支持从历史记录中复制哈希值

结果导出

支持将结果导出为:

  • 文本文件(.txt)
  • CSV文件(.csv)
  • JSON文件(.json)

主题切换

提供浅色和深色两种主题,可通过"视图"菜单切换

布局调整

支持水平和垂直两种布局方式,自动适应窗口大小


常见问题

Q1: 计算大文件时程序无响应?

A: 这是正常现象,程序正在计算中。大文件计算需要时间,请耐心等待。

Q2: 如何验证下载文件的完整性?

A: 1) 计算文件的哈希值 2) 与官方提供的哈希值比对

Q3: 为什么相同内容的文件哈希值不同?

可能原因:

  • 文件编码不同
  • 文件包含不可见字符
  • 文件元数据不同

Q4: 如何批量检查文件夹中的文件是否被修改?

A: 1) 首次计算目录哈希并保存结果 2) 定期重新计算并比对


技术细节

支持的哈希算法

  • MD5 (128位)
  • SHA1 (160位)
  • SHA256 (256位)
  • SHA512 (512位)

实现原理

  • 小文件:一次性读取计算
  • 大文件:分块读取计算(4096字节/块)
  • 多线程计算,避免界面卡顿

性能优化

  • 进度条显示计算进度
  • 可中途停止计算
  • 结果缓存提高重复计算速度

更新日志

版本 1.0.0

  • 基础MD5计算功能
  • 支持文本和文件输入

版本 1.1.0

  • 增加多文件支持
  • 添加拖拽功能
  • 增加比对模式

版本 1.2.0

  • 支持多种哈希算法
  • 添加历史记录功能
  • 增加主题切换

版本 1.3.0

  • 改进用户界面
  • 添加布局切换功能
  • 优化性能

版权声明

本工具版权归作者杜玛所有,禁止用于商业用途。欢迎个人用户免费使用和传播。

如有任何问题或建议,请联系开发者。

v1.2.0 威力加强版

Choose a tag to compare

@duma520 duma520 released this 09 Apr 10:09
f643b94

终极MD5计算工具使用说明书

1. 版本信息

当前版本:1.2.0
作者:杜玛
版权所有 © 2023

2. 什么是MD5?

2.1 简单解释

MD5就像文件的"指纹"。每个文件都有一个独特的MD5值,可以用来验证文件是否被修改过。

2.2 专业解释

MD5(Message-Digest Algorithm 5)是一种广泛使用的密码散列函数,可以产生一个128位(16字节)的散列值。常用于验证数据完整性,确保文件在传输或存储过程中未被篡改。

3. 适用人群

3.1 普通用户

  • 想检查下载的文件是否完整
  • 想比较两个文件是否相同
  • 想管理自己的文件集合

3.2 IT专业人员

  • 系统管理员验证系统文件完整性
  • 开发人员检查构建产物
  • 安全人员分析文件变化

3.3 其他行业

  • 摄影师验证照片备份
  • 研究人员确保数据一致性
  • 法律工作者验证电子证据

4. 功能特点

4.1 核心功能

  • 支持MD5、SHA1、SHA256、SHA512算法
  • 支持文本、文件、多文件和目录计算
  • 拖拽操作支持
  • 哈希值比对功能
  • 自动检测重复文件

4.2 辅助功能

  • 历史记录
  • 深色/浅色主题
  • 结果导出
  • 右键快捷菜单

5. 详细使用指南

5.1 安装与启动

无需安装,直接运行程序即可使用。

5.2 界面介绍

程序界面分为几个主要区域:

  1. 顶部:输入方式选择和算法选择
  2. 中部:输入区域(根据选择方式变化)
  3. 下部:结果显示区域
  4. 底部:状态栏和操作按钮

5.3 基本使用步骤

5.3.1 计算单个文件MD5

  1. 选择"文件输入"方式
  2. 点击"浏览..."选择文件或直接拖拽文件到窗口
  3. 点击"计算MD5"按钮
  4. 查看结果区域显示的MD5值

5.3.2 计算文本MD5

  1. 选择"文本输入"方式
  2. 在文本框中输入或粘贴文本内容
  3. 点击"计算MD5"按钮
  4. 查看结果区域显示的MD5值

5.3.3 批量计算文件MD5

  1. 选择"多文件输入"方式
  2. 点击"添加文件"或"添加目录"按钮选择多个文件
  3. 点击"计算MD5"按钮
  4. 查看表格中显示的所有文件MD5值

5.4 高级功能

5.4.1 比对模式

  1. 勾选"比对模式"选项
  2. 在比对目标框中输入要比较的MD5值
  3. 计算MD5后会自动显示比对结果

5.4.2 自动检测重复

勾选"自动检测重复"选项后,程序会自动标记MD5值相同的文件。

5.4.3 使用历史记录

  1. 点击"工具"菜单中的"历史记录"
  2. 在弹出的窗口中可以查看、复制或删除历史记录

5.5 结果操作

5.5.1 复制结果

点击"复制结果"按钮可以将当前结果复制到剪贴板。

5.5.2 保存结果

点击"保存结果"按钮可以将结果保存为文本文件。

5.5.3 导出结果

点击"导出结果"按钮可以将结果导出为CSV或JSON格式。

6. 实用场景示例

6.1 验证下载文件

当从网上下载软件时,网站通常会提供MD5值。使用本工具计算下载文件的MD5并与网站提供的对比,可以确认文件是否完整且未被篡改。

6.2 查找重复文件

通过批量计算文件夹中所有文件的MD5,可以快速找出内容相同的重复文件,帮助清理磁盘空间。

6.3 数据完整性检查

科研人员可以使用本工具定期计算实验数据的MD5,确保数据在存储和传输过程中没有发生意外改变。

7. 常见问题解答

7.1 为什么两个不同的文件可能有相同的MD5?

虽然理论上不同文件应有不同MD5,但存在"哈希碰撞"的可能性。对于高安全性需求,建议使用SHA256或SHA512算法。

7.2 计算大文件时程序无响应?

这是正常现象,程序正在后台计算。可以观察进度条了解计算进度。

7.3 如何停止正在进行的计算?

点击"停止计算"按钮可以中断当前的计算过程。

8. 技术参数

8.1 支持算法

  • MD5
  • SHA1
  • SHA256
  • SHA512

8.2 性能指标

计算速度取决于文件大小和计算机性能,通常:

  • 小文件(1MB以下):即时完成
  • 中等文件(1MB-100MB):几秒内完成
  • 大文件(100MB以上):可能需要更长时间

9. 更新日志

版本1.2.0

  • 新增SHA1、SHA256、SHA512算法支持
  • 优化了多文件计算性能
  • 增加了深色主题
  • 修复了若干已知问题

10. 联系与支持

如有任何问题或建议,请联系:


本说明书力求全面覆盖各类用户需求,从基础使用到高级功能都有详细说明。如需更专业的指导,请参考相关算法文档或联系技术支持。

v1.1.0 加强版

Choose a tag to compare

@duma520 duma520 released this 09 Apr 10:02
f643b94

超级MD5计算工具使用说明书

版本:1.1.0
作者:杜玛
版权所有

目录

  1. 什么是MD5
  2. 工具简介
  3. 安装与运行
  4. 全新功能
  5. 界面说明
  6. 使用方法
  7. 高级功能
  8. 常见问题
  9. 技术细节
  10. 应用场景
  11. 注意事项
  12. 更新日志

什么是MD5

给非技术用户的解释

MD5就像文件的"数字指纹"。无论是一段文字、一张照片还是一个软件,都可以通过MD5算法生成一个独特的32位"身份证号码"。这个号码的特点是:

  • 相同内容永远生成相同MD5
  • 微小改动会导致MD5完全不同
  • 几乎不可能伪造出相同MD5的不同内容

生活例子:就像超市商品的条形码,不同商品有不同的码,扫一下就能知道是什么商品。

给技术人员的解释

MD5(Message-Digest Algorithm 5)是一种广泛使用的密码散列函数,产生128位(16字节)的散列值。虽然已被证明存在碰撞漏洞(Security Considerations in the RFC 6151),不再适合安全应用,但仍广泛用于校验数据完整性。

工具简介

这是一个功能强大的MD5计算工具,相比1.0.0版本新增了以下特性:

  • 支持多文件批量计算
  • 新增拖拽文件功能
  • 添加比对模式验证MD5
  • 可视化进度条显示
  • 支持大文件分块计算
  • 结果表格展示和导出
  • 自动检测重复文件

安装与运行

基础用户指南

  1. 确保电脑已安装Python 3.6或更高版本
  2. 下载程序文件MD5CalculatorApp-1.1.0.py
  3. 双击运行或右键选择"使用Python打开"

注意:首次运行可能需要安装依赖库:

pip install tkinterdnd2

技术人员指南

# 克隆仓库(如果有)
git clone [仓库地址]

# 安装依赖
pip install -r requirements.txt

# 运行程序
python MD5CalculatorApp-1.1.0.py

全新功能

1. 拖拽操作

现在可以直接将文件拖入程序窗口:

  • 拖到文本区:自动读取文件内容
  • 拖到文件区:自动设置文件路径
  • 拖到多文件区:自动添加多个文件

2. 多文件处理

  • 支持同时计算多个文件的MD5
  • 自动检测重复文件(相同MD5)
  • 显示文件大小和对比结果

3. 比对模式

  • 输入目标MD5值自动比对
  • 可视化显示比对结果(匹配/不匹配)
  • 在多文件模式下高亮显示匹配项

4. 进度显示

  • 计算大文件时显示实时进度
  • 多文件处理显示当前文件序号
  • 可随时停止计算过程

界面说明

![界面布局示意图]
(此处应插入新版界面截图,标注各个功能区)

  1. 输入方式选择:新增"多文件输入"选项
  2. 文本输入区:支持拖拽文件自动读取内容
  3. 文件输入区:支持拖拽单个文件
  4. 多文件输入区:列表显示所有待计算文件,支持拖拽添加
  5. 计算选项:新增"比对模式"选项和比对目标输入框
  6. 操作按钮:新增"停止计算"和"保存结果"按钮
  7. 进度条:实时显示计算进度
  8. 结果表格:多文件模式下以表格形式展示结果
  9. 状态栏:显示当前操作状态和提示信息

使用方法

基础操作指南

计算单个文本MD5

  1. 选择"文本输入"选项
  2. 在文本框输入或粘贴内容(或直接拖入文本文件)
  3. 点击"计算MD5"按钮
  4. 结果将显示在下方区域

计算单个文件MD5

  1. 选择"文件输入"选项
  2. 点击"浏览"选择文件(或直接拖入文件)
  3. 点击"计算MD5"按钮
  4. 结果将显示文件名和对应的MD5值

批量计算多个文件MD5

  1. 选择"多文件输入"选项
  2. 点击"添加文件"选择多个文件(或直接拖入多个文件)
  3. 点击"计算MD5"按钮
  4. 结果将以表格形式展示,重复文件会高亮显示

高级功能使用

使用比对模式

  1. 勾选"比对模式"选项
  2. 在比对目标框输入要对比的MD5值
  3. 计算后会自动显示比对结果
  4. 在多文件模式下,匹配的文件会绿色高亮

保存计算结果

  1. 计算完成后点击"保存结果"按钮
  2. 选择保存路径和文件名
  3. 结果将保存为文本文件,包含所有MD5信息

停止计算过程

  1. 计算大文件或多文件时,点击"停止计算"
  2. 程序会安全停止当前计算
  3. 已计算的结果会保留

高级功能

1. 重复文件检测

在多文件模式下,工具会自动检测MD5相同的文件,并用黄色背景标记。这在以下场景特别有用:

  • 清理重复照片
  • 查找重复下载的文件
  • 检查备份文件是否重复

2. 大文件优化处理

采用分块计算技术(4096字节/块),具有以下优势:

  • 内存占用恒定,不受文件大小影响
  • 可随时停止计算过程
  • 实时进度反馈

3. 线程安全计算

计算过程在独立线程中运行:

  • 不会阻塞界面操作
  • 支持计算过程中进行其他操作
  • 安全停止机制

常见问题

一般用户问题

Q:为什么需要计算多个文件的MD5?
A:当您需要检查一批文件是否完整或是否有重复时,批量计算可以大大提高效率。

Q:拖入文件没有反应怎么办?
A:请确保:

  1. 文件没有被其他程序占用
  2. 文件路径不包含特殊字符
  3. 有足够的文件读取权限

技术相关问题

Q:如何处理非常大的文件(如10GB以上)?
A:本工具采用分块处理技术,理论上只受限于硬盘读取速度。计算时会实时显示进度,并可随时停止。

Q:比对模式的实现原理是什么?
A:工具会将计算得到的MD5与用户输入的目标值进行字符串比对,支持大小写敏感/不敏感选项。

技术细节

核心算法改进

# 分块计算大文件MD5
hash_md5 = hashlib.md5()
with open(filepath, "rb") as f:
    for chunk in iter(lambda: f.read(4096), b""):
        if self.stop_flag:  # 支持停止计算
            return
        hash_md5.update(chunk)

多线程处理

# 启动计算线程
self.calculation_thread = threading.Thread(target=self.calculate_md5)
self.calculation_thread.daemon = True
self.calculation_thread.start()

# 定期检查线程状态
self.after(100, self.check_thread)

拖拽功能实现

# 注册拖拽目标
self.multi_file_listbox.drop_target_register(DND_FILES)
self.multi_file_listbox.dnd_bind('<<Drop>>', self.handle_multi_file_drop)

应用场景

普通用户场景

  • 验证下载的大型游戏/软件包完整性
  • 检查照片备份是否完整
  • 查找电脑中的重复文件

开发者场景

  • 自动化测试中的文件校验
  • 构建过程中的文件完整性检查
  • 文件同步工具开发

企业应用

  • 文档管理系统中的版本控制
  • 数据备份系统的完整性验证
  • 数字资产管理系统

注意事项

  1. 安全性:MD5不应用于密码存储等安全场景
  2. 文件权限:计算文件MD5需要读取权限
  3. 网络文件:不支持直接计算网络驱动器上的文件
  4. 特殊文件:可能无法计算正在被独占打开的文件

更新日志

版本1.1.0 (当前版本)

  • 新增多文件批量计算功能
  • 添加拖拽文件支持
  • 实现比对模式和高亮显示
  • 增加进度条和停止功能
  • 优化大文件处理性能
  • 添加结果表格和导出功能
  • 改进用户界面和交互体验

版本1.0.0

  • 基础MD5计算功能
  • 支持文本和单文件输入
  • 基本结果显示和复制功能

温馨提示:本工具完全免费开源,欢迎反馈使用体验和建议!如需商业使用或定制开发,请联系作者。

v1.0.0 基础版

Choose a tag to compare

@duma520 duma520 released this 09 Apr 10:01
f643b94

MD5计算工具使用说明书

版本:1.0.1
作者:杜玛
版权所有

目录

  1. 什么是MD5
  2. 工具简介
  3. 安装与运行
  4. 界面说明
  5. 使用方法
  6. 常见问题
  7. 技术细节
  8. 应用场景
  9. 注意事项
  10. 更新日志

什么是MD5

给非技术用户的解释

MD5就像文件的"指纹"或"身份证号"。每个文件或文本都会生成一个独特的32位字母数字组合,可以用来验证文件是否被修改过。比如下载软件时,网站提供的MD5值可以用来检查下载的文件是否完整、未被篡改。

给技术人员的解释

MD5(Message-Digest Algorithm 5)是一种广泛使用的密码散列函数,产生128位(16字节)的散列值。虽然已被证明存在碰撞漏洞,不再适合安全应用,但仍广泛用于校验数据完整性。

工具简介

这是一个简单易用的MD5计算工具,具有以下特点:

  • 支持文本和文件两种输入方式
  • 可选择输出大写或小写MD5值
  • 一键复制结果功能
  • 简洁直观的用户界面

安装与运行

基础用户指南

  1. 确保电脑已安装Python(推荐3.6或更高版本)
  2. 双击运行MD5CalculatorApp.py文件
  3. 如果无法直接运行,请右键选择"使用Python打开"

技术人员指南

# 克隆仓库(如果有)
git clone [仓库地址]

# 进入目录
cd [目录路径]

# 运行程序
python MD5CalculatorApp.py

界面说明

![界面布局示意图]
(此处应插入界面截图,标注各个功能区)

  1. 输入方式选择:选择文本输入或文件输入
  2. 文本输入区:当选择文本输入时可见,可输入任意文本
  3. 文件输入区:当选择文件输入时可见,可浏览选择文件
  4. 计算选项:勾选"大写结果"可使MD5值显示为大写字母
  5. 计算按钮:点击计算输入内容的MD5值
  6. 结果显示区:显示计算得到的MD5值
  7. 操作按钮:复制结果、清空输入、退出程序

使用方法

计算文本的MD5值

  1. 选择"文本输入"选项
  2. 在文本框中输入或粘贴要计算的内容
  3. 点击"计算MD5"按钮
  4. 结果将显示在下方区域

示例:

输入文本:Hello World
MD5结果:b10a8db164e0754105b7a99be72e3fe5

计算文件的MD5值

  1. 选择"文件输入"选项
  2. 点击"浏览..."按钮选择文件
  3. 点击"计算MD5"按钮
  4. 结果将显示在下方区域

示例:

选择文件:document.pdf
MD5结果:5d41402abc4b2a76b9719d911017c592

其他功能

  • 复制结果:点击"复制结果"按钮将MD5值复制到剪贴板
  • 清空:点击"清空"按钮重置所有输入和结果
  • 退出:点击"退出"按钮关闭程序

常见问题

一般用户问题

Q:为什么需要计算MD5值?
A:MD5值可以用来验证文件完整性,比如下载大文件后,计算MD5与官方提供的对比,确保下载无误。

Q:计算大文件会很慢吗?
A:本工具采用分块计算方式,即使大文件也能高效处理。

技术相关问题

Q:为什么MD5不再安全?
A:MD5已被证明存在碰撞漏洞,即可以人为制造两个不同内容但MD5相同的文件,因此不再适合密码存储等安全用途。

Q:如何验证工具计算的MD5是否正确?
A:可以使用命令行验证:

# Windows
certutil -hashfile 文件名 MD5

# Linux/macOS
md5sum 文件名

技术细节

核心算法

本工具使用Python标准库hashlib中的MD5实现,文件计算采用4096字节分块处理,内存效率高。

代码关键部分

# 计算文本MD5
content = self.text_input.get("1.0", tk.END).encode('utf-8')
md5_hash = hashlib.md5(content).hexdigest()

# 计算文件MD5(分块处理)
hash_md5 = hashlib.md5()
with open(filepath, "rb") as f:
    for chunk in iter(lambda: f.read(4096), b""):
        hash_md5.update(chunk)
md5_hash = hash_md5.hexdigest()

应用场景

普通用户场景

  • 验证下载文件的完整性
  • 检查文档是否被修改
  • 比较两个文件是否相同

开发者场景

  • 数据校验
  • 缓存键生成
  • 简单数据指纹(非安全场景)

企业应用

  • 文件管理系统中的重复检测
  • 数据备份验证
  • 自动化测试中的文件比对

注意事项

  1. 安全性:MD5不应用于密码存储等安全场景
  2. 大文件处理:极大型文件可能需要一定时间计算
  3. 特殊字符:文本输入支持所有Unicode字符
  4. 文件权限:计算文件MD5需要读取权限

更新日志

版本1.0.1 (当前版本)

  • 新增本详细说明书
  • 优化文件处理的内存效率
  • 修复了界面布局的小问题

版本1.0.0

  • 初始发布版本
  • 基本MD5计算功能
  • 文本和文件输入支持

温馨提示:如需更多帮助或有功能建议,请联系开发者。本工具开源免费,欢迎分享使用!