File and Text Hasher – ファイルやテキストのハッシュ値を求めるソフト

※2021/01/20 version 0.3 に更新。Python を 3.9.1 にアップデートしました。ユーザーインターフェースを変更しました。チェックボックスの一括操作、クリップボードから比較テキストへの貼り付け、クリップボード内容の消去などのボタンを配置しました。

ファイルもテキストもこれ1つ

ファイルもテキストもハッシュ化できます。大容量ファイルにも対応しており、およそ 40GB までのファイルを扱えます。

マルチプロセス対応

複数のハッシュアルゴリズムを同時に計算することが可能です。必要に応じてマルチプロセスで処理を高速化します。

可変長アルゴリズム対応

可変長ダイジェストを持つSHAKEやBLAKE2を含め、16種類のアルゴリズムに対応しています。


1. 最新版ダウンロード (uploader.jp)

  • MD5: 2c5f7c262c81664e40c32cc74530846c
  • SHA256: 7ac6e63791f6e729ed1a69175b661f059d70afc85bc92bc608a1d9fe6eb18dbd

※必須環境: Windows10 (64bit)


2. 使い方

2-1. インストール / アンインストール

ダウンロードしたファイルを任意の場所に解凍し、”FileAndTextHasher.exe” を実行してください。Windows 10 (64bit) 環境で動作します。

アンインストールの際は、フォルダごと削除してください。レジストリは使用していません。

2-2. ファイルパスまたはテキストの入力

上部のテキストボックスに、ハッシュ化したいファイルのパスまたはテキストを入力してください。ラジオボタンで、ファイルとして処理するかテキストとして処理するかを指定します。

「…」ボタンを押すとファイル選択ダイアログが開きます。ファイルを選択すれば自動でファイルパスを入力することができます。テキストボックスにファイルを直接ドラッグ&ドロップすることも可能です。

対応するファイルサイズはおよそ 40GB までです。1GBを超えるような大容量ファイルは、なるべくSSDから読み込んでください。ハードディスクではかなりの時間がかかります。

処理テキストの最大文字数はおよそ10億文字で、実質無制限です。

「×」ボタンを押すと、すべての入力値とハッシュ値をクリアします。

2-3. ハッシュアルゴリズムの選択

ハッシュアルゴリズムの左端にあるチェックボックスで、計算する対象を指定することができます。大容量ファイルのハッシュ値を求める場合には、種類を限定した方が時間がかからなくて済みます。

「shake_128」、「shake_256」、「blake2b」、「blake2s」の4種類は、「サイズ」欄でダイジェストサイズを指定することができます。求めるハッシュ値は、サイズの2倍の長さになります。ただし、「blake2b」は64(ハッシュ値128文字)まで、「blake2s」は32(ハッシュ値64文字)までしか指定できません。「0」または無効な値を入力した場合には、デフォルト値が使用されます。

2-4. ハッシュ値の比較

以上の指定をして「ハッシュ化」ボタンを押すと、ハッシュ値が計算されます。

「比較テキスト」欄に比較したいハッシュ値を入力すれば、求めたハッシュ値の中から同一の値をリアルタイムで探します。同一の値が見つかった場合には、背景色を変えてお知らせします。

2-5. ディレクトリのハッシュ化

正式には「ディレクトリのハッシュ値」というものは無さそうなのですが、ディレクトリ内にあるファイルの同一性を確認する目的で、ディレクトリを指定してもハッシュ値を求められるようにしてあります。

そのためには、ディレクトリのパスを正しく入力し、ラジオボタンで「ファイル」を選択します。そして、アルゴリズムを1つだけ指定してください。

このハッシュ化では、ディレクトリ内のすべてのサブディレクトリとファイルを探索し、以下の手順でハッシュ値を求めます。

  1. ディレクトリ直下にある各ファイルのハッシュ値を求める。
  2. ハッシュ値をソートする。
  3. ソートしたハッシュ値をすべて繋げた文字列に対し、そのハッシュ値を求める。
  4. サブディレクトリが存在する場合は、上記の手順を再帰的に行う。

注意点として、ファイルへのアクセス権がない場合にはそのファイルをスキップし、存在しないものとして扱います。また、ドライブだけを指定することはできないようにしてあります。Cドライブを指定できるようにしてしまうと、膨大なファイル数により処理が追い付かないためです。


3. 更新履歴

  • 2021/01/20 (version 0.30) ; Python を 3.9.1 にアップデート。ユーザーインターフェースを変更。チェックボックスの一括操作、クリップボードから比較テキストへの貼り付け、クリップボード内容の消去などのボタンを配置。
  • 2020/10/10 (version 0.20) ; Python を 3.8.6 にアップデート。起動引数を変更し、隔離モードで実行するように変更。ディレクトリサイズを取得する関数を最適化。
  • 2020/09/24 (version 0.10) ; 公開。

Leave a comment

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

8 − 6 =