- 修改内存映射文件的初始化逻辑
- 遇到未知异常时发出通知后退出
- 增加可用于获取文件大小的占位符:$filesize$
- 在【常规设置选项】页增加【通过命令行、系统右键菜单、关联的文件启动计算前先将表格现有的内容清空】并实现其功能
- 删除主窗口顶部的【关于】按钮,原【关于】窗口的内容移到【设置】窗口的【关于软件】页
- 在【界面设置】页增加单独控制主窗口各个工具按钮是否显示的设置项
- 增加两个校验依据解析方案(通用五)和(通用六)
- 想要看到新增的解析方案,需要重置解析方案。如果有自定义的解析方案,请先把它们复制到其他位置保存,重置方案后再重新添加,否则自定义方案将丢失!
- 当无法从校验依据文件获知算法类型时,将默认依据的算法与启动校验时用户指定的算法相同
- 当“校验依据文件内记录的哈希值长度”与“启动校验时指定的算法的结果应有的长度”不匹配时,或者启动校验时未指定算法,则行为仍然与旧版相同
- 修复不清空表格的情况下选择校验依据手动进行校验时,如果校验依据内是文件相对路径而不是文件名,会导致校验结果是“无关联”的问题
- 修复当使用命令行参数启动 HashCalculator 时,如果传入的哈希算法参数是算法别名,HashCalculator 不能识别别名的问题
- 为【配置文件保存位置】增加【公用用户目录】和【程序数据目录】选项
- 计算文件哈希值时暂停的时长不再计入“计算耗时”中
- 【完整路径】列、【操作目标】列、【任务耗时】列改为可点击表头排序
- 新增设置项【所有计算任务完成后清除所有行的被选中状态】并实现功能
- 【界面设置选项】页增加用于控制是否显示主窗口工具按钮的设置项【显示主窗口工具按钮】
- 在界面设置选项中增加调整颜色参数的选项,分别用于调整相同哈希值行、相同哈希值筛选器、相同文件夹筛选器所使用的颜色的参数
- 为程序增加使用命令安装或卸载右键菜单的功能(程序完整命令行参数及说明见末尾)
- 主窗口表格右键菜单增加【复制所选行当前哈希值】、【复制所选行所有哈希值】菜单项,用于在设置了复制模板的情况下也可以仅复制哈希值
- 实现记住主窗口表格列宽功能
- 在设置面板的【界面设置选项】页增加【重置主窗口表格所有列的宽度】按钮用于将主窗口表格所有列宽度重置为“自动”
- 增加【快捷操作设置】页,增加部分列的鼠标左键双击行为设置项
- 在【任务设置选项】增加【文件被添加后自动启动对该文件的计算任务】设置项
- 【添加标记改变文件哈希值】操作器改为允许对状态为“任务未开始”的文件进行操作
-
子命令 1:
compute
,用于计算文件或文件夹内的文件的哈希值。- 参数 1:
-a
或--algo
,指定计算文件哈希值的时候使用的算法,可省略。 - 示例:
hashcalculator compute -a sha_1,sha_256 "文件1路径" "文件2路径" "文件夹1路径" ...
- 参数 1:
-
子命令 2:
verify
,用于从校验依据文件(文件哈希值清单)获知一批待计算哈希值的文件(文件名或相对路径)并计算,然后与校验依据文件内记录的哈希值进行对比,检查计算结果和校验依据文件内记录的哈希值是否一致。- 参数 1:
-a
或--algo
,指定计算文件哈希值的时候使用的算法,可省略。如果省略该参数则按软件设置的策略决定使用什么算法。 - 参数 2:
-l
或--list
,指定校验依据文件(文件哈希值清单)的路径,此参数必需,不可省略。 - 示例:
hashcalculator verify -a sha_1,sha_256 -l "D:\xxx\sha256sums"
- 参数 1:
-
子命令 3:
shell
,用于安装或卸载 HashCalculator 的系统右键菜单。- 参数 1:
-i
或--install
,表示安装 HashCalculator 的系统右键菜单,不要与参数 2
同时使用。 - 参数 2:
-u
或--uninstall
,表示卸载 HashCalculator 的系统右键菜单,不要与参数 1
同时使用。 - 参数 3:
-s
或--silent
,可以配合参数 1
或参数 2
使用,此参数则表示静默安装/卸载,即使安装/卸载出现异常也不会弹出提示窗口。注:安装/卸载正常的情况下无论是否使用此参数都不会弹出提示窗口。此参数可省略。 - 示例:
hashcalculator shell --install --silent
- 参数 1:
- 解决部分直接使用预置的 Administrator 账户登录系统的特殊用户安装右键菜单成功但不显示菜单的问题
- 限制设置面板可输入的任务延迟启动的毫秒数为 >= 0
- 将计算完成自动给相同哈希值的行的哈希值列上色改为自动给整行上色
- 在主窗口表格的右键菜单中增加【切换所选行导出状态】菜单项
- 增加以管理员身份启动软件时会在标题栏显示【管理员】字样的功能,以及其他一些 UI 文字及提示文案更改
- 修复当 Shell 扩展模块找不到 HashCalculator.exe 文件时弹出的提示信息乱码或空白的问题
- 给【快捷菜单与文件关联】设置页添加一些信息显示和一些说明
- 新增设置项【所有任务完成计算后使用颜色来标记相同的哈希值】并实现功能,以及重新分类一些设置项
- 重置向表格添加文件的任务优先级为 Background,改善添加文件时点击操作按钮无响应的问题
- 主窗口表格增加【完整路径】列,增加记住主窗口表格列顺序功能
- 在设置面板的【界面设置选项】页增加【不显示完整路径列】和【重置主窗口表格列的顺序】设置项
- 【复制行为设置】和【导出计算结果设置】新增支持
$horztab$ 占位符(横向制表符) - 更新部分 UI 文字
- 【界面设置选项】新增【不显示序号列】和【不显示校验结果列】两个设置项
- 【界面设置选项】设置页中增加【显示新添加文件的图标】设置项并实现其功能
- 【相同哈希值筛选器】新增功能:【指定算法为第一行当前显示的算法】
- 优化筛选器列表的复选框的点击逻辑:点击筛选器列表的筛选器前的复选框时,当前选中的筛选器也会同时切换为该筛选器
- 【重命名文件】操作器增加功能
- 支持自动选择第一行显示的算法作为关注的算法
- 重命名时支持把哈希值作为文件名的前缀、后缀、替换原文件名
- 修复主窗口在最大化状态下关闭,下次打开后还原正常大小时会出现与原大小不一样的问题
- 给【导出计算结果设置】设置页增加 2 个新设置项并实现功能、记住上次导出结果的文件名
- 增加【把每种算法的结果分别导出到以算法名为扩展名的不同文件中】设置项并实现功能
- 增加【每次导出结果时都打开导出参数小窗口以设置本次的导出参数】设置项并实现功能
- 新增功能:当校验依据文件内容没有指定算法时,如果校验依据文件名以算法名作为扩展名,则自动选择文件扩展名指定的算法
- 修正在上一次添加文件夹但未搜索完成的情况下再次添加另一个文件夹,需要多次点击取消搜索按钮才能停止搜索的问题
- 新增支持将 .hash、.sfv、.sums 文件的“打开方式”设置为“哈希值校验依据”的功能(需要重新安装右键菜单扩展)
- 修复无配置文件启动软件时,在设置面板中修改配置文件的储存位置不生效,需要关闭软件后打开软件再次修改配置文件储存位置才生效的问题
- 增加设置选项、部分设置选项移到新设置页
- 【常规设置选项】中关于任务的设置移到【任务设置选项】页
- 增加【延迟启动被添加到表格中的哈希值计算任务】设置选项
- 修复作为校验依据打开文件后,找不到的文件在某些特殊情况下仍然会显示文件大小的问题
- 设置面板增加设置选项【使筛选与操作窗口跟随主窗口移动】,筛选与操作窗口内同步增加相同的设置选项以方便切换
- 修复筛选与操作面板打开状态下超出窗口时再次点击主窗口的筛选与操作按钮,筛选与操作面板横向和纵向区域不能同时回到屏幕内、不贴合屏幕边缘的问题
- 【筛选与操作】面板在打开的状态下最小化,再次点击主窗口的【筛选与操作】按钮,面板将从恢复显示而不是关闭
- 新增功能:使用【筛选与操作】面板的操作器时,如果不显示【操作目标】列,则可以直接在主窗口表格中选择多行作为操作目标
- 更改【筛选与操作】面板的布局以减少面板的空间占用
- 修正关于
$newline$ 和$newlinew$ 占位符的问题- 【复制行为设置】中删除
$newlinew$ 占位符,$newline$ 占位符改为代表 Windows 换行符 - 【常规设置选项】中增加一项设置用于控制导出计算结果时所使用的换行符类型
- 【导出计算结果设置】中删除
$newlinew$ 占位符,$newline$ 占位符所代表的换行符类型改为由上面👆新增的设置项控制
- 【复制行为设置】中删除
- 使用矢量图作为图标,改善软件图标在高缩放率下的清晰度
- 修复打开软件后如果首先打开【筛选与操作】面板,那么设置面板中【要设置别名的本地算法】会变成未选中任何项的问题
- 解决可能无法从分区根目录搜索文件的问题、遇到有无法访问的目录后导致没有搜索后续正常目录内的文件的问题
- 当【当选择或拖放的多个待计算对象中包含文件夹时】设置为【不对该文件夹进行搜索操作】时,如果使用【选择目录】按钮选择计算对象,则默认搜索一代子文件,而不是所有子文件
- 稍微提高将文件显示到主窗口表格的任务优先级以获得更流畅的显示效果
- 为【相同哈希值】筛选器增加【在表格显示的所有行的内嵌哈希值中查找相同项】功能
- 【选择操作目标】操作器增加一个选择按钮【按相同内嵌哈希值组选择】
- 修复使用【添加标记改变文件哈希值】一次修改多个文件时可能会产生相同的随机数据段的问题
- 修复首次使用 5.18.0 版本时可能出现设置面板所选的配置文件保存位置与实际保存位置不一致的问题
- 更改部分筛选器的行为和名称
- 【序号范围】筛选器在结束序号比开始序号小时不再自动交换值,而是视为不设上限
- 【文件大小】筛选器在文件大小上限比文件大小下限小时不再自动交换值,而是视为不设上限
- 【哈希值】筛选器更名为【搜索哈希值】
- 更新预置的校验依据解析方案【通用一】的表达式(需要重置解析方案列表才能看见更新)
- 现在哈希校验依据输入框的单个哈希值如果首尾包含空格也能正确解析
- 修改 .sums 和 .hash 文件的预置解析方案,支持匹配带空格和小括号的算法名(需要重置解析方案才能看见更新)
- 增强监控剪贴板并在合适添加下触发自动校验的功能
- 该功能以前只能在复制单个哈希值时触发自动校验,现在只要是能被【校验依据解析方案】解析的内容,复制后都能触发自动校验,包括复制校验依据文件的完整路径
- 更新文件相对路径的生逻辑,相对起始点与上一个本版有差异,影响所有使用 relpath 占位符的功能
- 上一个版本:只计算以文件夹方式加入计算的文件的相对路径,相对起始点是加入计算的文件夹
- 现在的版本:计算所有加入计算的对象的相对路径,相对起始点是加入计算的文件或文件夹的父目录,其中:
- 使用系统右键菜单点击目录空白处加入计算时,视为将该目录加入计算,所以相对起始点是该目录的父目录
- 将文本文件作为校验依据打开并进行自动校验时,视为将校验依据文件所在目录的多个文件/文件夹加入计算,所以相对起始点是这些文件/文件夹的父目录,即校验依据文件所在目录
- 新增支持将带相对路径的哈希值清单文件作为校验依据文件
- 导出哈希值结果的默认方案的一些更改
- 导出计算结果的默认方案中的
$name$ 占位符全部改为$relpath$ (重置导出方案后才能看见变化); - 新增一个导出为 .sfv 文件的默认方案 (重置导出方案后才能看见变化);
- 导出计算结果的默认方案中的
- 文件在被计算时才显示大小改为文件在被添加时显示大小
- 监视剪贴板内容以进行自动校验时,如果表格为空将不触发自动校验
- 新增设置项:支持选择将配置文件保存到当前目录或用户目录
- 新增功能:【校验依据解析方案】的【用于类型】支持多个扩展名
- 新增功能:设置面板增加设置页【哈希算法别名】,支持给算法设置别名
- 新增功能:【复制行为设置】和【导出结果模板】新增两个占位符
$newline$ 和$newlinew$ ,分别对应 UNIX 和 Windows 风格的换行符 - 修改 .sums 和 .hash 文件的预置解析方案,支持匹配带空格和小括号的算法名(需要重置解析方案才能看见更新)
- 【关于】面板增加更新日志链接
- 复制模板和导出结果模板增加一个可用的占位符:$relpath$
-
$relpath$ 占位符代表文件的相对路径,仅对以文件夹的方式添加计算的文件有效,相对路径的起点是被添加的文件夹
-
- 更改【关于】窗口,增加一个列表用于显示本软件所使用的开源项目
- 增加按格式解析校验依据功能
- 增加的功能的设置项位于设置面板的【校验依据解析方案】页中,可自定义如何解析输入的校验依据字符串或校验依据文件的内容
- 修复文件不存在时无法右键复制文件名的问题,文件不存在时如果右键复制完整路径则弹出提示
- 导出结果模板中的保存编码 “系统默认” 改为 ANSI(只是显示名称变化,编码并没有变化)
- 扩展校验依据文件编码的支持范围,现在支持 UTF8/UTF16/ANSI(系统默认编码)/GB18030 及其兼容编码的文本文件
- 重新实现【添加标记改变文件哈希值】和【还原被改变哈希值的文件】
- 使用 5.15.0 或之前版本生成的带哈希标记的文件只能用 5.15.0 或之前版本查看或还原
- 可选的【同时进行的任务数量上限】选项提高到 32
- 修复导出结果时【导出】是否勾选都不起作用的问题
- 设置面板的【导出结果设置】页增加设置项“使主窗口的【导出】复选框控制该行所有子算法的【导出】而非当前算法”并实现其功能
- 缓解某些情况下主窗口运行状态频繁切换导致部分按钮频繁闪烁的问题
- 优化移动文件到回收站的速度
- 修正主窗口右键【删除文件】和【筛选与操作】面板的删除文件操作器执行过程中可能长时间假死的问题
- 修复使用【快捷菜单配置文件编辑器】编辑子菜单时弹出的提示有可能会被【编辑子菜单】窗口遮挡的问题
- 算法面板的一些更改和更新:
- 把【OTHERS】分组重命名为【其他算法】
- 把 SHA1 算法从【SHA1/2】分组移到【其他算法】并将【SHA1/2】重命名为【SHA2】
- 增加一个分组【总览视图】用于在一个视图内查看全部算法
- 设置页【导出结果设置】增加设置项【导出结果时的哈希值使用默认输出方式而不是各行当前的输出方式】并实现功能
- 设置页【导出结果设置】增加设置项:导出计算结果时【另存为】对话框的【保存类型】列表内的可选方案,可选方案:
- 导出为 .txt 文件
- 导出为 .csv 文件
- 导出为 .hcb 文件
- 导出为其他文件
- 自定义导出内容格式
- 更改【筛选与操作】面板的布局以容纳更多操作器
- 【筛选与操作】面板增加【生成带哈希标记的新文件】操作器和【显示文件哈希标记或还原】操作器
- 修复安装外壳扩展模块后使用右键菜单导致资源管理器崩溃的问题
- 给【筛选与操作】面板添加一个用于指示正在筛选中的动态图标
- ShellExtensions(外壳扩展模块)改为静态编译以解决在某些系统上缺少依赖库的问题
- 安装外壳扩展模块时,如果不存在快捷菜单配置文件则使用默认配置创建配置文件
- 快捷菜单配置文件编辑器现在加载和保存 UTF-16LE 编码版本的快捷菜单配置文件
- 外壳扩展模块现在按照 UTF-16LE 编码版本的快捷菜单配置文件【menus_unicode.json】生成快捷菜单,避免修改系统编码后快捷菜单出现乱码
- 修复移除某一行后点击【新增哈希计算】按钮,已被移除的行再次出现的问题
- 【显示设置】中增加设置项【显示主窗口按钮的名称】并实现其功能 (默认打开)
- 【复制模板设置】页更名为【复制行为设置】,增加设置项【复制的内容含算法名时算法名的大小写跟随十六进制输出方式】并实现功能 (默认关闭)
- 修复不显示【输出方式】列后再重新显示,输出方式列中的复选框变为未选中状态的问题
- 添加“不显示【输出方式】列”设置项
- 删除重复记录的设置项,更新部分小图标,删除未使用的资源
- 主窗口【哈希值】列中增加一个按钮用于复制对应行的所有结果
- 【常规设置】页增加设置项【校验时自动把算法切换到】并实现功能
- 设置面板中增加【复制模板设置】页,实现按模板复制哈希值功能
- 修复把只包含哈希值的文件当作校验依据打开时获取到空文件名导致异常退出的问题
- 快捷菜单编辑器保存配置时不再限制为必须同时拥有两种类型的菜单
- 修复使用快捷菜单配置编辑器编辑子菜单时,如果子菜单列表为空,点击“上/下移动”按钮或“移除”按钮会导致异常退出的问题
- 删除外壳扩展模块内未使用的资源,修正快捷菜单图标有白边的问题,优化菜单构建逻辑
- 更改部分设置项的文案以期望设置项的作用能被描述得更清楚
- 增加常规设置的【哈希值计算任务设置】组中两个设置项的互斥逻辑,避免设置不当导致可能发生程序无响应的情况
- 删除默认哈希算法面板的部分提示
- 实现系统右键快捷菜单的自定义集成功能,方便自行决定集成到系统右键的快捷菜单
- 更换 SHA224 和 Whirlpool 算法的实现库,Whirlpool 算法耗时相较于上一个版本减少约 25%
- 添加 eD2k 算法、MD4 算法、RipeMD160 算法和 Has160 算法
- 解决误使用体积很大的非文本文件作为校验依据文件时长时间无法完成文件读取的问题
- 安装外壳扩展时不再将 HashCalculator.dll 释放到当前位置,也不再限制主程序文件名为 HashCalculator.exe
- 给设置面板的“快捷菜单与文件关联”页添加“修复程序路径”内部链接
- 安装系统外壳扩展的注册表更改逻辑集成到 HashCalculator.dll 内,解决之前版本卸载外壳扩展时注册表可能清理不干净的问题
- 修正之前设置文件的默认打开程序为 HashCalculator 时程序名称和图标可能显示不正确的问题
- verify 子命令 -b/--basis 改为 -l/--list
- 命令行 -a/algo 选项的参数:XXHASH32→XXH32, XXHASH64→XXH64, XXHASH3→XXH3_64, XXHASH128→XXH3_128
- 命令行 -a/algo 选项的参数:SHA1→SHA_1, SHA224→SHA_224...
- 修改部分主窗口右键菜单文字,删除多余的菜单项
- 主窗口哈希值后面的“详情”按钮改为显示该行已计算的算法数量(仍然保留原点击功能)
- 给设置项“直接使用校验依据进行校验时首选依据算法而非默认算法”添加子项“当校验依据中未指明算法时”并实现相关功能
- 用命令行参数启动校验流程的命令【hashcalculator.exe verify -b path_to_checklist_file】现在增加对可选参数【-a/--algo】的支持,此参数用于指定首选算法
- 给系统右键菜单“作为哈希校验依据打开”添加算法子菜单,可以选择使用指定的算法来计算,其中“自动选择”子菜单行为与原行为相同
- 修复当哈希值校验依据文件路径中有空格时从系统右键菜单启动校验没有反应的问题
- 系统右键菜单选项“计算所选对象哈希值”和“执行指定哈希算法”合并为“计算所选对象的哈希值”,其中子选项“默认算法”与原“计算所选对象哈希值”行为一致
- 对设置面板“常规设置”页的相关联的设置项进行分组
- 主窗口的“文件大小”列改为显示直观的文件大小(以不同的单位显示)
- 添加国密 SM3 算法
- 系统右键相关菜单中增加 SM3 算法子项
- 设置面板增加设置项“复制的字符数在此范围内时才触发”并实现其功能
- 修改主窗口的哈希值校验依据输入框提示文案
- 更新更清晰的图标:程序图标、系统右键扩展菜单图标、.hcb 文件图标(其中系统右键扩展菜单图标和 .hcb 文件图标需要在旧版本 HashCalculator 卸载右键扩展菜单后再在新版本安装右键扩展菜单才能体现效果)
- 将 blake3.dll 和 xxhash.dll 删除,hashalg.dll 中增加 blake3 和 xxhash 算法实现,进一步减小软件大小
- 文件哈希值详情窗口的哈希值列表改为使用表格展示
- 为避免在主窗口更改“导出”属性需要逐个哈希值切换的麻烦,在文件哈希值详情窗口增加了“导出”列
- 添加监控剪贴板功能,如果复制了新的哈希值,则用此值填充”哈希值或文件路径“文本框,如果此时非正在运行状态则立即进行校验
- 增加设置项“剪贴板中有新复制的哈希值时填充校验依据文本框并校验”
- 设置面板增加设置项“用剪贴板哈希填充校验依据文本框并校验后把主窗带到前台”并实现功能
- 主窗口的“校验依据”输入框支持粘贴/输入多行内容
- 哈希校验依据输入框支持输入与导出的哈希结果文件一样的内容
- 校验依据和命令行参数中的哈希算法名不再区分大小写
- 修复某些情况下通过系统右键菜单计算文件哈希值或双击打开.hcb文件无法将已存在的HashCalculator主窗口带到前台的问题
- 修复主窗口“哈希值校验依据”输入框混合输入单独的哈希值、哈希值+文件名、算法名+哈希值+文件名有可能会导致校验结果全部是“不确定”的问题
- 原“哈希值”筛选器在用户输入错误的哈希值时所有文件都可以通过筛选,现在改为所有文件都不可以通过筛选
- 删除算法选择面板的 Blake2b、Blake2bp、Blake2s、Blake2sp、Blake3 算法的 128/160 位版本
- 将默认哈希值面板中的 SHA3 系列算法从 SHA 分组中拆分出来作为单独的一组
- 修复短时间快速点击复制哈希值按钮大概率会导致软件异常退出的问题:复制哈希值失败时增加提示窗口,而不是发生异常退出程序
- 为避免在文件哈希值详情窗口复制哈希值时触发剪贴板监控,哈希值详情窗口的哈希值改为不可选择,增加“复制”按钮用于复制哈希值
- 更新“刷新输出方式”按钮图标并移到“默认输出方式”下拉列表后面
- 修正主窗口标题在 Windows 10 和在 Windows 11 上显示不一致的问题
- Crc32 算法改为使用 C 实现,速度提升近一倍
- 添加 Crc64 算法
- 部分算法所需的外部动态链接库合并为一个,减小文件体积
- 系统右键菜单“执行指定的哈希算法”增加 Crc64 选项(请在旧版本卸载右键菜单后打开新版本重新安装右键菜单)
- 对部分算法计算速度缓慢的问题进行优化 (改用 C 实现),在没有硬盘读取速度瓶颈的情况下,计算速度大幅提升:
- 计算
SHA3
耗时是 5.4 版本的 70% - 计算
SHA224
耗时是 5.4 版本的 33% - 计算
Blake2s
耗时是 5.4 版本的 12% - 计算
Blake2b
耗时是 5.4 版本的 18% - 计算
Blake3
耗时是 5.4 版本的 4% - 计算
Whirlpool
耗时是 5.4 版本的 11% - 其他在以上两点未提及的算法都是速度正常或新增的算法
- 计算
- 增加两个筛选器:【文件大小】和【相同文件夹】筛选器
- 筛选与操作面板布局更改,筛选器改为使用列表显示
- 删除文件】和【重命名文件】操作增加未使用【有效文件】筛选器时的提示
- 有效的文件】筛选器默认勾选
- 筛选与操作面板改为可手动调整大小
- 修复在使用【相同哈希值】筛选器时,如果存在大量相同哈希值的文件组,则不同的哈希值可能会被分为同一组的问题
- 增加算法支持:QuickXor、Blake2bp、Blake2sp、Streebog。
- 删除 BouncyCastle.Cryptography.dll 依赖,减小可执行文件体积
- 系统右键菜单“执行指定哈希算法”增加 QuickXor、Blake2sp-256、Blake2bp-512、Streebog-256 选项
- 修改“默认哈希算法”面板,对算法进行分类以缓解算法太多太杂乱的问题
- 设置面板的“常见问题修复向导”页添加若干修复项
- 哈希值详情窗口由自动调整大小改为可手动调整大小,以免选择的算法太多时窗口超出屏幕范围
- 重新排列系统右键菜单的“执行指定的哈希算法”的子选项以使其与主程序算法排序相同
- 更新系统右键菜单的“执行指定的哈希算法”的部分子选项以使其与主程序算法名称相同
- xxhash 算法由使用 C# 的实现改为使用 C 库的实现,在没有硬盘读取速度瓶颈时计算速度有大幅度提升
- 增加两个 XxHash 算法:XXH3 和 XXH128,同时原 Xxhash32 和 XxHash64 算法分别更名为 XXH32 和 XXH64 以符合官方命名
- 设置面板增加【常见问题修复向导】页
- 设置面板增加设置项【不要计算空文件的哈希值以避免造成文件内容相同的误导】
- 引入 System.Buffers.dll,用于读取文件的缓冲区改为从 ArrayPool 租借,提高计算大量小文件时的性能
- 设置文件中记录已勾选的默认哈希算法方式更改,新版 HashCalculator 需要重新勾选默认哈希算法
- 修复哈希值非常短导致哈希值末尾与【详情】按钮直接有空白的情况下,双击空白处打不开详情面板的问题
- 删除 Crc32C 算法,增加 XxHash32 算法和 XxHash64 算法
- 系统右键菜单【执行指定哈希算法】增加子项【XxHash32】和【XxHash64】
- 主窗口表格右键菜单增加【批量切换算法】选项,更改部分选项名称
- 新增 Crc32 和 Crc32C 算法
- 系统右键菜单【执行指定哈希算法】增加子项【Crc32】
- 实现一次任务同时计算多个算法的结果,每个任务成功后显示一个详情按钮,点击打开详情窗口
- 实现通过哈希校验依据文件进行校验时同时校验多个算法的哈希值
- 设置面板增加设置项“直接使用校验依据进行校验时首选校验依据中的算法而非默认算法”并实现从校验依据文件解析对应文件的对应算法并进行计算
- 调整设置面板分类
- 增加设置项“导出哈希值时导出哪些算法的结果”并实现相关功能
- 哈希结果列表增加两个右键菜单选项:复制所有算法结果、按格式复制所有算法结果
- 文件大小列的悬浮提示使用合适的单位显示直观的文件大小
- 算法面板和文件详情面板增加按 ESC 键关闭功能
- 修复使用文本文件校验依据直接校验时,没有搜索到的文件名在表格中总是显示为小写字母的问题
- 增加设置项“每个任务的多个算法并行”并实现功能
- 增加筛选面板,用于筛选计算结果表格内容 (#21),其中包含一些筛选器和一些可对筛选结果执行的命令,组合使用可实现筛选并删除多余的相同哈希值文件功能 (#17)
- 修正系统右键菜单“执行指定的哈希算法”部分选项失效的问题 (#23)
- 修复通过哈希表格右键菜单打开单个文件位置且文件不存在时,错误打开并选中文件所在目录的问题
- 主窗口右上角的【帮助】按钮改为【关于】按钮,由“使用浏览器打开本地帮助页面”改为打开包含相关链接的【关于】窗口
- 修复某些情况下因注册表父键不存在而导致安装右键菜单失败的问题
- 使用无效的校验依据文件时不再提示用户选择处理方式,而是中断校验并提示可能的失败原因
- 其他 UI 细节调整
- 导出哈希结果的保存文件窗口增加[HashCalculator 校验依据|*.hcb]文件类型
- 修正从命令行启动 HashCalculator 时没有输入正确的子命令仍然会开始计算的问题
- 增加与 .hcb 文件的关联功能,打开/删除关联的方式附加在”安装/卸载右键菜单“按钮上
- 修复“从系统右键菜单以指定的算法启动计算,任务完成后点击[新增哈希计算]没有使用默认的哈希算法新增计算,而是以原指定算法进行计算”的问题
- 重构设置面板,增加设置项:导出哈希计算结果时首选导出文件类型
- 系统右键菜单增加选项"作为哈希校验依据打开",对单个文件右击时右键菜单会出现此选项 (#5)
- 更新 BouncyCastle.Cryptography.dll 版本到 2.2.1
- 设置面板增加两个按钮:安装/卸载右键菜单,实现非安装版 HashCalculator 的右键菜单安装、卸载功能
- 增加设置项,可以选择是否允许运行多个程序实例,从系统右键菜单启动计算时会根据设置决定启动新窗口还是在原窗口进行计算
- 删除设置面板一些无用的设置(程序未使用的设置)
- 从系统右键菜单或命令行启动计算,会把承担计算任务的窗口切换到前台
- 主窗口关闭时自动记住窗口最大最小化状态(请注意:在最小化状态下关闭,下次启动仍是最小化状态)
- 安装版的 HashCalculator 集成了自己的两个菜单选项到系统右键菜单,现在可以通过在文件、文件夹、文件夹背景、混选的文件和文件夹上点击右键,选择“计算所选对象哈希值”或“执行指定的哈希算法”来打开 HashCalculator 计算所选对象的哈希值
- 右键菜单增加“复制文件名”选项
- 增加程序内右键菜单选项:任务控制,可对多选的任务进行继续、暂停、取消、新增计算、启动未成功项、重新计算操作
- “文件名”列和“哈希值”列的悬浮提示弹出策略由立即弹出改为系统默认值以减少鼠标在表格上移动时受到的信息干扰
- “本次待计算队列中的项目总数”和“本次待计算队列已完成的项目数”图标合并为“剩余哈希计算任务数”使其更符合实际状态
- 解决在正在计算多个文件哈希值过程中更改同时进行计算的任务数可能不能及时生效的问题
- “文件体积”列的字节数由计算完成后显示改为在开始计算时显示
- 解决右键菜单“删除文件”、“移除所选项”后不更新校验报告的问题
- 主界面增加新按钮“停止搜索文件”,实现正在搜索文件同时正在计算过程中点击按钮停止搜索的功能
- 增加主界面图片按钮的被点击时的效果
- 优化添加大量文件时的调度逻辑,提高 UI 流畅度
- 为主窗口图标按钮区域增加滚动条,当横向空间不足时自动显示滚动条
- 右键菜单选项的可用状态不再绑定表格项数
- 修复进行“重新计算”等操作时如果文件不存在也不更新“导出”列、“文件体积”列的问题
- 主窗口左下角添加转圈圈动画,有计算任务时显示,否则不显示
- 解决使用快速校验时,如果有大量找不到的文件且未完成搜索,点击“停止搜索”按钮无法成功停止的问题
- 主界面的“继续”、“暂停”、“取消”三个图标按钮不再根据是否有任务运行而切换启用/禁用状态
- 计算过程中“清空所有内容”按钮不再禁用,计算过程中点击清空按钮会先取消所有任务再清空表格
- 修复点击取消全部任务时,计算失败/未找到的文件也被错误标记为“已取消”的问题
- 调整主窗口图标按钮顺序,分组更合理。更新“清空所有内容”按钮图标,使图标更接近“清空”含义而不是之前的“删除”含义
- 添加算法选项:SHA3 系列、BLAKE2s(256bit)、BLAKE2b(512bit)、BLAKE3(256bit)、Whirlpool
- 导出哈希值文本格式更改:每行前增加算法名称,如:
#SHA-1 *hash-string *file-name
- 校验依据文件读取逻辑更新:同时支持旧版和新版导出格式的文件
- 旧版依据文件行格式:hash-string *file-name
- 新版依据文件行格式:#SHA-1 *hash-string *file-name
- 添加 "输出方式" 下拉框; 在 Grid 中添加 "文件体积" 列; 删除设置界面的 "大小写" 设置 @lujiaxing
- 优化“导出”列的复选框总是需要点击两次才能更改选中状态的问题
- 更新行内控制按钮的样式等细节
- 主界面文字按钮改为图片按钮,使界面更简洁紧凑
- 添加行右键菜单:打开文件、打开位置、复制路径、复制哈希结果、删除文件、移除所选项、文件属性
- 更新程序图标
- “哈希值”列、输出方式列、校验结果列改为允许点击表头排序
- 可能解决了取消任务时偶尔出现完成任务数多于总数导致部分主按钮一直不可用的问题
- 解决下拉列表框有时候文字模糊的问题
- 主窗口增加显示:列表项目总数、待计算队列总数、待计算队列已完成数
- 更改“增加新行重新计算列表文件哈希值”按钮的动作逻辑,使其真正地只重新计算已显示在列表中文件的哈希值,而不是已选择、已拖放的所有文件(包括还未显 示就被取消的文件)
- 更改文件搜索逻辑,不再搜索完再显示文件,而是边搜索边显示文件,提升在选择/拖入大量文件时的 UI 流畅度
- 改进逻辑以使更改哈希值输出类型时不再需要重新计算哈希值,校验哈希值时校验结果也不受输出方式的影响
- 每行的"算法"改为在单独列显示
- 增加“刷新输出方式”按钮、“计算所有未完成项”按钮
- 表格改为支持选中多行
- 更改表格鼠标悬浮时的背景色和选中时的背景色便于区分
- 删除“使用帮助”窗口,点击“使用帮助”按钮使用默认浏览器打开使用帮助页面
- 设置面板增加“右键选择删除文件时永久删除而不是移动到回收站”设置项
- 删除“校验依据类型”下拉列表,"哈希值校验依据"输入框增加 PlaceHolder 类型的提示字符
- 更正帮助文档中的错误链接。
- 添加选择文件夹按钮:供不方便拖放文件的情况下使用。
- 新增设置项“使用快速校验时”:可以设置在依据所在目录内搜索一代子文件还是全部子文件。
- 新增菜单按钮:帮助按钮。点击打开帮助窗口以查看帮助文档。
- 新增取消任务按钮:选错文件或者不想计算剩余文件的哈希值,可以直接点击取消所有任务。
- 增加校验报告功能:完成哈希值计算或校验后,把鼠标悬停在任一行的“校验”结果列上就可以看到所有校验结果的汇总。
- 主界面窗口微调,按钮和菜单不再紧贴标题栏。
- 修复搜索子目录可能无法搜索到所有文件的问题。
- 修复使用快速校验时,校验依据里存在但本地不存在的文件没有显示到表格里的问题。
- 重构程序启动入口,将动态库打包进可执行文件以实现单文件运行。
- 修复在点击取消任务时有可能使程序卡死的问题。
- 修复使用快速校验时不同子目录下有相同文件名文件,只能显示其中之一的问题。
- 修复使用快速校验时依据文件内有相同文件名会得到红色校验结果的问题,现在校验结果显示为黑色,代表
不确定
。 - 其他未记录的 BUG 修复
- 修复问题:当面板中有条目时,使用“选择文件”按钮添加文件,会重复计算已存在的条目。
- 修复拖放文件到面板但还未计算时哈希类型显示为 SHA256 的问题。
- 增加记住主窗口关闭时的位置设置项。
- 增加同时进行的任务数量上限设置项。
- 新增功能:如果面板为空且校验依据是通用格式的哈希值文件(注1),可以直接点击校验而无需事先把文件拖入面板计算哈希值。点击校验后程序会在哈希值文件所在目录寻找相应文件计算哈希值并显示校验结果。
- 设置窗口可调整大小,关闭时自动记住窗口大小。
因设置文件变更,所以之前版本的设置文件可能失效,需要重新设置并保存。
注1:通用格式的哈希值文本文件指的是一个多行文本文件,无需特定后缀,但需要是 UTF-8 编码,每行的格式是:[哈希值][空格][可选星号][文件名],具体请参考程序的“导出结果”功能导出的哈希值文本格式。
- 新增设置项:计算所得哈希值使用小写字母形式
- 增加设置项:当拖入面板的对象包含文件夹时,可选项:搜索一代子文件、搜索全部子文件、不搜索该文件夹
- 增加功能:鼠标悬浮在面板行上时显示相应文件的完整路径的悬浮提示
- 计算哈希值时,如果无法完成计算,则该行的“导出”列不再默认勾选。
- 新增主窗口置顶功能,方便在各种窗口之上对比哈希值
- 新增 MD5、SHA1、SHA224、SHA384、SHA512哈希算法
- 新增
主窗口关闭时保存窗口尺寸
设置项 - 新增面
复制重算
按钮和原地重算
按钮,分别对应的功能:- 以已拖入面板中的文件为文件来源,以
算法
下拉框所选哈希算法,新增相应的行数并计算哈希值 - 以已拖入面板中的文件为文件来源,以
算法
下拉框所选哈希算法,重新计算哈希值并刷新面板中的结果
- 以已拖入面板中的文件为文件来源,以
- 检验文件计算所得哈希值时,没有检验过的行的
检验结果
列下的单元格背景色显示为白色,已检验但与依据没有关联则显示为灰色
,方便区分该行是否已经检验
- 首个版本发布,支持SHA256哈希值的批量计算与检验。