Readme

********************************************************************************
[  ソフト名  ] HashSum
[ バージョン ] Ver.6.00
[Architecture] x86 / x64
[CharacterSet] Unicode
[    種別    ] フリーウェア
[   対応OS   ] Windows 2000/XP/Vista/7/8 以降
[必要ランタイム 等] Windows 2000 以前のみ Gdiplus.dll 。それ以外の OS では特になし
[  動作確認  ] Windows 2000/XP/7/8/Windows Server 2012 R2
[   開発者   ] 冬野 善文
               GPG Key fingerprint = 9EAB EE16 6F97 D6D0 D0E1
                                     250E EC99 07F9 44DC 1469
[  Web Site  ] http://hp.vector.co.jp/authors/VA052754/
[   メール   ] WebSiteのトップページか、同梱版Readmeをご覧ください。
********************************************************************************

■はじめに
ダウンロードしていただきありがとうございます。

HashSum は、 CRC16, CRC32, MD5, SHA1, SHA256, SHA512, 他多数(全62種)のハッシュ
関数とプラグインに対応した ハッシュ値 / チェックサム 算出ソフトウェアです。

ハッシュ値算出機能の他、
 * ハッシュファイルの保存/読込フォーマットをカスタマイズ可能(以下プリセット済み)
   ** 保存
      GNU Coreutils (md5sum / sha1sum) / BSD / OpenSSL / SFV / LTSV / CSV
   ** 読込 (PGP 署名付きでも読み込み可)
      GNU / BSD / OpenSSL / SFV / lft(Fire File Copy[作者:kitt氏]などの出力形式)
 * 重複, 非重複ファイル 検出/削除/置換 機能
 * ファイル操作機能(開く, リネーム, 削除, コピー, 移動, 他)
 * Web検索機能(VirusTotal, Google / Hash, ファイル名)
 * オンラインスキャン機能(VirusTotal)
 * 外部ツール連携機能
 * リストのインクリメンタルサーチ機能
 * クリップボード監視&比較機能
 * 文字列からのハッシュ値算出機能
 * プラグインによる対応ハッシュや機能の拡張性
などを有しています。

算出したハッシュと、ハッシュファイルやクリップボードから入力したハッシュを比較
することも可能です。

リネーム、インクリメンタルサーチ機能では、正規表現も使用できます。

・その他の特徴
 * Multilingualization (Unicode Support)
 * Localization (English, Japanese)
 * Windows Shell Extension (optional)
 * ハッシュファイルと関連付け可能 (optional)
 * Windows Vista 以降の Low-Priority I/O に対応
 * マルチコア / メニーコア CPU などに最適化

ハッシュファイル(チェックサムファイル)は、複数の 文字コード/改行コード と、
 相対パス/絶対パス に両対応しています。


・Ver.5.07 の対応ハッシュ関数(全62種)

(
  CRC-16-CCITT (R, L), CRC-16-IBM (R), CRC32, CRC-32C, CRC-64-ECMA-182 (R),
  Adler-32, xxHash, BLAKE2b, BLAKE2bp, BLAKE2s, BLAKE2sp, GOST,
  GOST (CryptoPro), MD2, MD4, MD5, SHA-1, SHA-224, SHA-256, SHA-384,
  SHA-512/224, SHA-512/256, SHA-512, SHA3-224, SHA3-256, SHA3-384, SHA3-512,
  SHAKE128, SHAKE256, Keccak-224, Keccak-256, Keccak-384, Keccak-512, Tiger/128,
  Tiger/160, Tiger, Tiger2, Whirlpool-T, Whirlpool, RIPEMD-128, RIPEMD-160,
  RIPEMD-256, RIPEMD-320, Panama (LE, BE), HAS-160,
  HAVAL (3/4/5 passes, 128/160/192/224/256 bits)
).


レジストリは使用しません。
USBメモリなどに入れて持ち運びできるポータブルソフトでもあります。

■動作環境
・Windows 2000/XP/Vista/7/8 以降

■インストール
適当なフォルダに展開してください。

シェル拡張(シェルエクステンション)をインストールする場合や、ハッシュファイルを
関連付けする場合は設定の "関連付け / シェル拡張" からインストールしてください。
ただし、この場合はレジストリを使用します。

OS が 64 bit バージョンの Windows Server 2003 または Windows XP の場合で、
シェル拡張登録が失敗する場合は、下記 URI の Hotfix をインストールしてください。
http://support.microsoft.com/kb/942589/


ソフト初回起動時、exeファイルと同じディレクトリに対する書き込み権限がない場合、
 %APPDATA%\HashSum に設定ファイルを保存します。
リードオンリーな場所にインストールする場合で、かつ、 %APPDATA%\HashSum に設定を
保存したくない場合は、一度書き込み権限のあるディレクトリでソフトを起動しiniファ
イルを作った後、そのiniファイルごと移動してください。
iniファイルがありさえすれば、権限の有無に関わらずそのファイルを使用します。
(ただし、書き込み権限がなければ当然設定は保存されません)

■アンインストール
・設定はすべて exeファイル と同じディレクトリにiniファイルとして保存しています
 ので、フォルダごと削除すれば完了です。
 ただし、ソフト初回起動時、exeファイルと同じディレクトリに対する書き込み権限が
 なかった場合は、 %APPDATA%\HashSum に設定が保存されています。

・レジストリは使用していません。

シェル拡張をインストールした場合や関連付けした場合は、
設定の "関連付け / シェル拡張" からアンインストールしてください。
dllファイルを削除できない場合は、エクスプローラをすべて閉じるか、PCを再起動して
みてください。

・プラグインを別途インストールしている場合は、そのプラグインのドキュメントをご覧
ください。

・Windows Vista 以降で、 x86 版の Ver.3.11 以前を使用したことがある場合
Program Filesフォルダ以下にインストールした場合、 VirtualStore に設定ファイルが
保存されているかもしれません。

同じディレクトリにiniファイルがなかった場合は、そちらを確認してください。
例として、 %ProgramFiles%\HashSum にインストールした場合、
%LocalAppData%\VirtualStore\Program Files\HashSum
にiniファイルがあります。

■使用方法
シェル拡張(シェルエクステンション)をインストールしない場合は、「送る」などに
登録して利用すると便利かと思います。
「送る」は、「エクスプローラ」のアドレスバーや、「ファイル名を指定して実行」
などで、「shell:SendTo」と入力することで開けますので、ショートカットなどを作成
してください。必要によりコマンドラインオプションも活用してください。


コマンドライン引数に、ファイルかディレクトリを指定し起動するか、
起動してからドラッグ&ドロップでファイルかディレクトリを登録して下さい。
シェル拡張(シェルエクステンション)をインストールしている場合は、ファイラのコンテ
キストメニューからも登録できます。
複数 ファイル/ディレクトリ にも対応しており、また、列挙中に追加のドラッグ&ドロ
ップも可能です。
( UAC, UIPI 有効下でドラッグ&ドロップできない場合は、ソフトをファイラ以下の権
 限で起動してください)

ディレクトリを渡すと、その下にあるすべてのファイルをリストアップします。

カラムヘッダを右クリックや、メニューの「Algorithm」から使用するハッシュ関数を
指定できます。

「Start」ボタンで処理を開始します。


ハッシュ算出後、入力されたハッシュ(InputHash カラム)と比較し、相違なければ
 Valid カラムに一致したハッシュ関数名を表示、違った場合は !NG と表示し、その
ファイルの行の背景を赤色に変更し通知します。
(複数のハッシュ値が入力されていた場合は、そのすべてが一致していた場合のみ正常と
 判断し、 Valid カラムに代表として一つのハッシュ関数名を表示します。
 もし一つでも不一致があれば !NG と表示します。)
「検証エラー数」では、その NG ファイル数を確認できます。

ハッシュの入力は、ハッシュファイルの他、マウスのコンテキストメニューや、
 Ctrl+V、Shiftキーを押しながらマウスのダブルクリックでもクリップボード内のハッ
シュを入力可能です。
クリップボード内にHASH以外の文字があった場合でも、ある程度は自動でハッシュのみ
切り出します。
クリップボードからペーストした場合は既に入力されていたハッシュはクリアされます。
1ファイルに対して複数ハッシュ入力する場合はハッシュファイルを使用してください。


「検証エラー数」は、ハッシュ算出対象ファイルの、ハッシュ算出前にハッシュが
入力されていた場合にのみ、処理終了後カウントするので、ハッシュ算出後にハッシュ
を入力してもカウントは変化しません。ハッシュ算出後に再カウントさせたい場合は、
「Start」ボタンを押してください。


「算出エラー数」は、算出処理終了後にカウントします。
これには、算出処理をキャンセルしたファイルも含まれます。


・リストビューでアイテムをダブルクリックすることで、「すべてのハッシュ」形式で
ハッシュをクリップボードにコピーできます。


・「Start」ボタンについて
「Start」ボタンは、処理中は「Pause」ボタンに変化し、押すことによって一時停止が
できます。もう一度押すと再開します。

ハッシュ算出後に押した場合、リスト中のハッシュが算出されていないファイルを検索
し、そのファイルのハッシュを算出します。
既にハッシュが算出されているファイルのハッシュをもう一度算出したい場合は、
コンテキストメニューから「再算出」を選択してください。


・ハッシュファイルの読み込みについて
ハッシュファイルと関連付けしている場合は、ハッシュファイルをダブルクリックすると
自動で検証が開始されます。

シェル拡張(シェルエクステンション)をインストールしている場合は、ファイラのコンテ
キストメニューからも読み込ませることができます。

ハッシュファイルはウィンドウ中の 「Start」 ボタンの横にある 「DropZone」
の部分にドラッグ&ドロップすることで読み込ませることができます。(複数可)
また、読み込み中に追加のドラッグ&ドロップも可能です。
「DropZone」以外の箇所にドラッグ&ドロップした場合は、ハッシュを算出するべきファ
イルとみなします。

ハッシュファイル読み込み時、記載されているファイルが既にリストビューに登録済み
であれば、記載されているハッシュ値をその登録済みファイルの入力ハッシュ
(InputHash カラム)として追加します。


デフォルトでは、文字コード等は自動判定、ハッシュファイルが相対パスだった場合
は、ハッシュファイルのあるディレクトリからの相対パスとして読み込みます。

ハッシュファイルのファイル名中にハッシュ関数名が入っていた場合、自動でそのハッ
シュの表示カラムを追加します。(プラグインで拡張したハッシュも同様)

ファイルが存在しないなどの理由でうまく登録できなかったファイルは、
「登録エラー数」ボタンをクリックすることで確認することができます。

もし、文字コードの問題などで、ハッシュファイルが正しく読み込めない場合は、
「HashFile(L)」ボタンを押すか、 Alt+L、またはメニューから 「HashFileを開く」
ダイアログを出して、文字コード等を明示的に指定可能です。

また、「高度な設定」内の「ハッシュファイル読み込み時の文字コードを固定する」に
チェックを入れて、エディットボックスにコードページを入力することで、文字コード
を固定することも可能です。入力するコードページは下記 URI をご覧ください。
ちなみに、 Shift_JIS のコードページは 932 です。
http://msdn.microsoft.com/en-us/library/dd317756.aspx


ハッシュファイルが相対パスの時、ハッシュファイルのあるフォルダと、検証したい
ファイルのあるフォルダが異なる場合でも、「HashFileを開く」ダイアログ中の
「相対パス時の検証フォルダ」にフォルダを指定することにより検証可能です。

「相対パス時の検証フォルダ」にフォルダを指定しなかった場合は、ハッシュファイル
のあるディレクトリからの相対パスとして読み込みます。


ファイル名中にハッシュ値が埋め込まれているファイルで、埋め込まれているハッシュ
値を用いた比較をしたい場合には、ハッシュファイルを作成しそれを読み込ませることで
埋め込まれているハッシュ値と比較できます。(1つの方法として、 dir コマンドの出力
を読み込めるように設定することもできます。(下記、ハッシュファイルの読み込み対応
フォーマットカスタマイズ方法参照))
あるいは、手軽にクリップボード比較機能を利用することでも可能です。
詳細は「クリップボード監視&比較機能について」をご参照ください。


lft形式の読み込みでは、タイムスタンプとファイルサイズは考慮しません。


また、ハッシュファイルの読み込み対応フォーマットは、ユーザが自由にカスタマイズで
きます。
設定ファイル中の [InputFormat] の箇所を直接編集してください。ソフト起動中でも変
更可能です。
まず、 Num= の箇所に登録数を記入し、

01Regex=ハッシュファイルからキャプチャする正規表現。 FilePath, Hash1 参照。
01FilePath=ファイルパス。 01Regex でキャプチャした何番目の文字列かを指定。
           ハッシュファイルのフルパスから取得したい場合は、
           /PATTERN/REPLACEMENT のように正規表現を記載する。Perlのように頭と区切
           りの文字 `/' は、他の文字に変更可能。
01Hash1=ファイルのハッシュ値。 01Regex でキャプチャした何番目の文字列かを指定。
        ハッシュ値が複数ある場合は、 01Hash2=, 01Hash3=, 01Hash4=... のように1フ
        ァイルにつき最大 9 ハッシュ(01Hash9=) まで指定可能。 9 ハッシュ以上の場
        合は、行を分けるか別のハッシュファイルにすることで無制限に入力できます。
01Algorithm=ハッシュアルゴリズムを正規表現のキャプチャで指定。 (optional)
            記載がなければハッシュファイル名から推測する。これを記載すると遅くな
            るので、ハッシュファイル中に複数種のハッシュが記載されていて、かつ、
            そのすべてのハッシュカラムを自動追加したいという状況でなければ記載し
            ないことをおすすめします。
            アルゴリズム名が1行に複数記載されている場合は、複数キャプチャし、`,'
            で区切る。
01Extension=ハッシュファイルの`.'含む拡張子。 (optional)
            大文字小文字を区別しない。
            記載がなければハッシュファイルとして渡された全ファイルから 01Regex 
            がマッチするか検索する。
01Priority=1 を指定すると、内部パーサ (GNU / lft) よりも優先される。 (optional)
            PGP 署名付きの場合や、フォーマットが GNU と誤認識される場合(行頭にフ
           ァイル名がある SFV 等で有り得る) などに 1 にしてください。

のように記入してください。
01 の部分は登録数によって適宜変更してください。この数値が小さいものほど高優先度
となります。

BSD / OpenSSL / SFV 用の設定をプリセット済みですので参考にしてください。
01 が BSD/OpenSSL 用、02 が SFV 用の設定です。
プリセットの設定は CR に対応していないので、対応させたい場合は [\r\n] を使うなど
、適宜パターンを書き換えてください。

デフォルトでは PGP 署名付きは常に GNU とみなします。プリセット済みの形式でも PGP
 署名付きを読み込みたい場合は、 01Priority=1 にしてください。

例として、
ハッシュファイル名が "ファイル名.md5" で、内容がMD5値だけ記載されているハッシュ
ファイルに対応する場合は、
03Priority=1
03Regex=^([0-9A-Fa-f]{4,})$
03FilePath=/(.+)\./$1
03Hash1=1
と設定すれば読み込み可能となります。マイナーなフォーマットだと思うのでプリセット
にはいれていません。

正規表現で対応フォーマットを増やすとそれだけ読み込みが遅くなるので、必要最低限に
するかよく使うものを高優先度にしたり Extension を指定することをおすすめします。


・ハッシュファイル中の記載ファイルを登録除外(除外リスト化)する機能について
ウィンドウ中の 「Start」 ボタンの横にある 「DropZone」の部分にShiftキーを押しな
がらドラッグ&ドロップするか、「HashFileを開く」から「除外リストに登録する」を
選択して読み込ませることで記載ファイルを除外リストとして登録できます。

除外リストに登録されたファイルはリストビューに登録することができなくなります。
よって、この後ファイルかディレクトリをウィンドウにドラッグ&ドロップしてリスト
ビューに登録することにより、ハッシュファイルに記載されていないファイルのみを算
出対象とすることができます。

ハッシュファイルへ保存時は既存ファイルに追記することも可能ですので、ご活用くだ
さい。

コマンドラインオプションを使うと、全自動でハッシュファイルに記載されていないフ
ァイルのみを算出後 保存/追記 するといったことが可能になります。

除外リストへはフルパスで登録されます。
パスの扱いや、読み込み対応フォーマット等については
「ハッシュファイルの読み込みについて」をご参照ください。

除外リストをクリアしたい場合は、
設定 -> 除外フィルタ から "除外リスト" のチェックを外すことでクリアできます。


・クリップボード監視&比較機能について
「設定」で 有効/無効 を切り替えることができます。
低スペックPCの場合、無効にしておくと多少動作が軽くなります。

リストビュー中の算出済みハッシュのいずれかがクリップボード中に存在した場合、
 "!Clip<マッチしたハッシュ関数名>" を Valid カラムに表示し、マッチしたファイル
の行の背景を緑色に変更し通知します。

入力されたハッシュ(InputHash カラム)がある場合にはそちらが優先されます。

クリップボードに入れるハッシュ値は複数でも構いませんし、
クリップボードにコピーしたのがソフト起動前であっても、正しく比較します。

クリップボード中に文字列として扱えないデータが入った場合は、前回文字列として取得
できた内容を使用し比較します。

この機能では、ファイル名等は無視され、純粋にハッシュ値でのみ比較します。
よって、ハッシュファイル中のファイル名を無視した検証や、
未対応形式のハッシュファイルとの検証がしたい場合は、
ハッシュファイルをメモ帳などのテキストエディタで開き、すべてクリップボードに
コピーすることで実現できます。(ハッシュファイルが複数あって開くのが面倒な場合
は、コマンドプロンプトで

type *md5* | clip

などとすると楽にコピーできます。この例では、カレントディレクトリのファイル名中に
md5という文字列が含まれるすべてのファイルの内容がクリップボードに入ります。
「clip.exe」は、 Windows Server 2003 以降には標準搭載されています。)


ファイル名中にハッシュ値が埋め込まれているファイルで、埋め込まれているハッシュ
値を用いた比較をしたい場合にもこのクリップボード比較機能が利用できます。
ファイル名のコピーは HashSum 本体の機能や同梱しているシェル拡張の機能を使うと楽
にコピーできます。
あるいは、ハッシュファイルを利用することでも比較できます。
詳細は「ハッシュファイルの読み込みについて」をご参照ください。


クリップボードにハッシュ値以外が入っていても構いませんが、ハッシュ値のみコピー
したほうが誤判定が少なくなります。

基本的にビット長が長いハッシュから比較していますが、それらでマッチしなかった場
合、CRCのようなビット長が短いものは誤判定する可能性があります。
(今時CRCを使うこともないと思うので、将来的にCRC系は除外するかもしれません)

ハッシュファイル読み込み時に、ハッシュファイルが未対応形式であった場合は、
自動でその内容をクリップボードにセットします。(未対応ファイルが複数ある場合
は、最後のファイルの内容がクリップボードにセットされます。)


他ソフトとの相性によりクリップボード監視機能がうまく機能しない場合、
設定ファイル中の [General] セクションに OpenClipboardWait キーを作成し、値を変
更してみてください。 (デフォルト 0) (単位:ms)
これによって、 WM_DRAWCLIPBOARD メッセージが送られてきてから、実際にクリップボ
ードを開くまでの待機時間を変更できます。


・重複ファイル検出機能について
「設定」から重複ファイルと判断する条件を変更できます。
 * FileName
       大文字小文字を区別しない。
 * RelativePath
       ソフトに登録した場所からの相対パス。大文字小文字を区別しない。
       例えば、 C:\foo\bar\baz\ というディレクトリがあったとして、 C:\foo\bar\ 
       をウィンドウにドラッグ&ドロップしファイル登録したとすると、 bar 直下のフ
       ァイルの相対パスは .\ となり、 baz 直下の相対パスは .\baz\ となります。
       ファイルをドラッグ&ドロップし登録した場合は .\ となります。
       (レスポンスファイルから登録された場合も同様。ハッシュファイルから登録され
        た場合は、検証フォルダが指定されていればそこから、されていなければハッシ
        ュファイルからの相対パスとなります。)
       相対パスにファイル名は含まれないので、この条件を有効にすると単一ディレク
       トリが登録されている場合は、サブディレクトリ含め同一ディレクトリ内での重
       複検出になります。
       2つ以上のディレクトリ間の差異確認などで、ファイル名まで一致する重複を検出
       したい場合は、 FileName にもチェックをいれることで可能です。
 * FileSize
       リスト登録時のファイルサイズ。
       リスト登録後にファイルが変更されハッシュが他と一致するようになった場合で
       も、登録時のファイルサイズが異なれば重複とはみなさない。
 * Hash
       算出済みのすべてのハッシュ。
       ハッシュ算出後カラムの表示設定を変更した場合など、今現在リストビューに表
       示してはいないものの、メモリ上には保持しているハッシュも含む。
       これをクリアしたい場合は、「すべて再算出」か「選択ファイルを再算出」する
       ことで可能です。後者は選択ファイルのみクリアします。
       (あるハッシュで一方は算出済みだが、もう一方は未算出の場合、不一致と判断)

 * 基点が同じファイルを除外
       基点(RelativePath の説明で言うドラッグ&ドロップしたパス)が同じファイルを
       重複とみなさなくなります。大文字小文字を区別しない。
       2つ以上のディレクトリ間の差異確認などで通常条件との併用を想定したオプショ
       ンです。
 * 同一ディレクトリを除外
       同一ディレクトリ内で重複検査しなくなります。大文字小文字を区別する。
       2つ以上のディレクトリ間の差異確認などで、ファイル名を無視した重複検出を行
       う場合に RelativePath などと併用を想定したオプションです。
        RelativePath と同時に FileName を有効にした場合はこれを有効にする意味は
       ありません。(通常、 Windows はファイル名の大文字/小文字を区別しないので)

算出エラー/キャンセルファイルは重複検出から除外されます。
重複判定はリストの上の方にあるファイルを基準とします。

低スペックPCの場合、無効にしておくと多少動作が軽くなります。
大量のファイルを算出する場合で、重複検出する必要がないのであれば、重複判定条件
をすべて無効化しておくことをおすすめします。

-ae, -lh, -c, -rh オプション使用時は自動的に重複判定条件がすべて無効化されます。

"高度な設定" から、指定値以上の登録ファイル数で、重複判定条件を自動ですべて無効
化する閾値を指定できます。 0 にするとファイル数では自動無効化しなくなります。
(無効となるのは一時的なもので、次起動時は元の重複判定条件に戻ります。)
重複判定条件が一致するファイルのみハッシュ算出する場合や、算出後自動重複削除機能
有効時、 -rl オプション使用時は自動無効化されません。

DuplicateFiles カラムでソートすると交互に色分けされるので見やすいかと思います。

コンテキストメニューに重複ファイル選択のためのメニューがあります。
"古いファイルを残す", "新しいファイルを残す" はファイルの更新日時で比較します。
等しい場合は、上の方にあるファイルが選択から外れます。


・重複ファイルの HardLink / SymbolicLink への置換機能について
選択した重複グループを各リンク(HardLink / SymbolicLink) へ置換します。

重複グループはコンテキストメニューの中にある "古いファイルを選択",
 "新しいファイルを選択", "一番上のファイルを選択", "一番下のファイルを選択", な
どで指定できます。
ある1つの重複グループ内のファイルを複数選択した場合は、選択したうちの一番上にあ
るファイルが選択されたものとみなします。

選択は、 HardLink への置換の場合はどの重複グループを置換するかという意味しかあり
ませんが、 SymbolicLink への置換の場合は、その重複グループ内のファイル群が選択し
たファイルへの SymbolicLink となります。

各リンクへの置換は OS とファイルシステムが対応している必要があります。

HardLink / SymbolicLink のどのリンクに置換するかは、
設定 -> "置換" から以下3つの中から選択できます。
  * HardLink へ置換する
  * HardLink へ置換失敗時 SymbolicLink にする
  * SymbolicLink へ置換する
また、 SymbolicLink を絶対リンクと相対リンクのどちらにするかもそこから設定できま
す。ただし、相対リンクを指定していても、相対パスで表現できなければ絶対リンクにな
ります。

SymbolicLink への置換は Windows Vista 以降で特権がある場合のみ有効となります。
無効時はエラーとして処理されます。

リンクへの置換に成功した場合は何も表示されませんが、置換に失敗したファイルがある
場合はそのファイルリストのログが表示されます。(算出後自動終了が有効な場合は除く)

重複ファイルを HardLink / SymbolicLink に置換する際、置換元と置換先の
 VolumeSerialNumber と FileID が同じ場合は、そのファイルの置換処理はスキップされ
ます。 (算出ハッシュをリンクして算出を高速化する機能有効時のみ)


各リンクに置換したくないファイルがある場合は、予めリストからファイルを削除してお
くか、インクリメンタルサーチ機能を使用してフィルタリングしておいてください。


・VolumeSerialNumber と FileID が同じ場合、算出ハッシュをリンクして算出を高速化
  する機能について
「高度な設定」から有効無効を切り替えられます。 (デフォルト:無効)
本機能を有効にすると、ファイル登録時の列挙が遅くなります。

OS が Windows 8 以降であれば、 64 bit の VolumeSerialNumber に対応しています。
OS が Windows Server 2012 以降であれば、 Resilient File System (ReFS) の
 128 bit FileID に対応しています。

SymbolicLink ファイルの FileID カラムに表示されるのはリンク元の FileID です。

本機能無効時や取得失敗時は、 VolumeSerialNumber, FileID カラムは空白で表示されま
す。

本機能有効時にリンクしているうちの1つを算出中キャンセルした場合、それ以外の同一
リンクファイルもキャンセルされたものとして扱われ、算出エラーとしてカウントされま
す。


・自動削除リスト機能について
自動削除リストは、ハッシュファイルに記載されているハッシュと算出ハッシュが一致す
るファイルを自動削除する機能です。

ウィンドウ中の 「Start」 ボタンの横にある 「DropZone」の部分にCtrlキーを押しなが
らドラッグ&ドロップするか、「HashFileを開く」から「削除リストに登録する」を選択
して読み込ませることで記載ハッシュを削除リストとして登録できます。

削除リストをクリアしたい場合は、
設定 -> 重複ファイル -> 自動削除リスト のチェックを外すことでクリアできます。

自動削除ではなく、一致を目視確認したい場合はクリップボード比較機能を利用してくだ
さい。

読み込み対応フォーマット等については「ハッシュファイルの読み込みについて」をご参
照ください。


・自動削除リストと算出後自動重複削除機能に共通する事柄
設定 -> 重複ファイル -> 自動削除時削除確認しない が有効な場合、削除するかどうか
の確認はしません。無効な場合は Windows のごみ箱の設定に従います。


・ファイル操作機能(削除)について
この操作は、 Windows Vista 以降であれば、エクスプローラの[編集]-[元に戻す]
で元に戻すことができます。(ごみ箱を使用する設定で完全に削除されていない場合のみ)


・ファイル操作機能(コピー / 移動)について
この操作は、 Windows Vista 以降であれば、エクスプローラの[編集]-[元に戻す]
で元に戻すことができます。


・メニューの「Hashの安全性」について
メニューの「Hashの安全性」をクリックすると、デフォルトでは Wikipedia を開きます
が、設定ファイル中の [General] セクションに SecurityHashPage キーを作成すること
によって、開く URI を自由に変更可能です。 URI だけではなくファイル等も開けます。


・Web検索(Hash / ファイル名)機能について
Web検索(Hash / ファイル名)機能では、デフォルトでは Google で検索しますが、
設定ファイル中の [General] セクションに SearchEngine キーを作成することによっ
て、 Google 以外にも変更可能です。検索クエリの箇所を %s にしてください。
UTF-8 の application/x-www-form-urlencoded でURLエンコードされます。


・VirusTotal での Hash検索 機能について
VirusTotal で仕様変更があり、VirusTotalが対応しているハッシュが変わった場合は、
設定ファイル中の [OnlineScan] セクションに VirusTotalResource キーを作成するこ
とで対応できます。
コマンドラインオプションの -hf, -HF で指定できる文字列が指定可能です。それぞれ
を , で区切って指定してください。デフォルトでは内部的に以下が指定されています。

VirusTotalResource=SHA256,SHA1,MD5


・オンラインスキャン機能について
VirusTotal API Key が必要です。
VirusTotal側にリクエスト数制限があります。

設定ファイルに OnlineScan セクションを追加することにより、設定を変更できます。

キー名
 * VirusTotalMaxFileSize
   VirusTotal にアップロードできる最大サイズを MiB 単位で指定。デフォルト 32
 * UploadTimeout
   タイムアウト秒数。デフォルト 300


VirusTotal について、詳しくは下記 URI をご覧ください。
https://www.virustotal.com/documentation/public-api/


・ハッシュファイルの保存機能について
ファイル名のみ指定した場合はカレントディレクトリに保存されます。

マクロボタンはキャレット位置にマクロを挿入します。選択範囲があればそれを置換し
ます。

ハッシュファイル保存時、既存ファイルに追記する場合は、既存ファイルの
 文字/改行コード は一切関知しないので、 文字/改行コード の指定は間違わないように
してください。
追記 / 上書き は、コマンドラインオプションからも指定できます。


保存時に使用する書式は、ユーザが自由にカスタマイズできます。
設定ファイル中の [OutputFormat] の箇所を直接編集してください。
まず、 Num= の箇所に登録数を記入し、
01Name=表示名
01Format=保存時に使用する書式
01Extension=保存時に使用するファイルのデフォルト拡張子 (optional)
のように記入してください。 01 の部分は、登録数によって適宜変更してください。

パスは <FULLPATH> を使用してください。 相対パス / 絶対パス は保存時の設定により
自動で判断され置換されます。

相対パス出力を指定していても、そのパスが相対パスで表現できなければ絶対パスで出
力します。


保存時のデフォルトファイル名を変更したい場合は、設定ファイル中の [OutputFormat]
 セクションに DefaultFileName キーを作成することによって変更可能です。
これは、シェル拡張の「HashFileを作成」で作成されるファイル名にも影響します。
(置換書式も使用可能です。この場合、現在選択中のファイルの情報が使用されます。)


・ファイル操作機能(リネーム)について
この操作は、 Windows Vista 以降であれば、エクスプローラの[編集]-[元に戻す]
で元に戻すことができます。


リネーム時に使用する書式は、ユーザが自由にカスタマイズできます。
設定ファイル中の [Rename] の箇所を直接編集してください。
ソフト起動中でも変更可能です。
まず、 Num= の箇所に登録数を記入し、
01Name=表示名
01Format=リネーム時に使用する書式
のように記入してください。 01 の部分は、登録数によって適宜変更してください。


下記キーを作成することで、正規表現を利用したリネームも可能です。
01Regex=正規表現
01Regex_icase=1 で大文字小文字を区別せず、 0 で区別します。(デフォルト 0)

正規表現利用時の例として、
03Name=regex test
03Regex="(\d+)(.+)"
03Format="$1-<HASH>-$2"
とし、 88test.dat をリネーム実行すると、
88-算出したハッシュ-test.dat
とリネームされます。

一応、
04Name=regex test 2
04Regex="test"
04Format="hoge"
とし、 88test.dat をリネーム実行すると、
88hoge.dat
となるようなリネームもできるようにしてあります。


・外部ツール連携機能について
外部ツールはユーザが自由にカスタマイズできます。
設定ファイル中の [ExternalTool] を直接編集してください。
まず、 Num= の箇所に外部ツール登録数を記入し、

01Name=表示名
01Path=実行するソフトのパス(安全のためフルパス指定が望ましいが相対パスも可)
01CmdLine=ソフトに渡すコマンドライン。置換書式使用可。
01LumpSelFiles=1 にすると選択ファイルを一括で送ります。その場合、 <FULLPATH> 
               のみ有効となり、1ファイルずつ " で囲まれます。
               0 は個別になります。(デフォルト 0)

のように記入してください。 01 の部分は、登録数によって適宜変更してください。
01Path= には環境変数も使用できます。

もし、ハッシュ値などを使って URI を開きたい場合は、 01Path にブラウザのパスを、
 01CmdLine に引数(URI + 置換書式)を、 01LumpSelFiles に 0 を記入してください。
(あるいは %ComSpec% と start コマンドを使うことでも実現できます)


・ハッシュファイルの保存とリネーム機能と外部ツール連携機能に共通する事柄
設定ファイルの書式中に下記文字列があれば、それぞれの内容で置換し使用します。
これらは、大文字小文字を区別します。
--------------
<BASENAME>
<EXTENSION>
<FULLPATH>
<DIRPATH>
<DIRNAME>
<ALGORITHM>
<algorithm>
<HASH>
<FILESIZE>
<FILESIZEDOUBLE>
<MODIFIEDDATE>
<MODIFIEDDATEISO8601>
<MODIFIEDTIME>
<MODIFIEDTIMEISO8601>
<BR>
<TZD>
<NOWDATE>
<NOWTIME>
--------------
上から、
 1:拡張子を除いたファイル名
 2:ファイルの拡張子
 3:ファイルのフルパス
 4:ファイルのあるディレクトリまでのパス
 5:ファイルのあるディレクトリ名(ディレクトリがなければ空文字列)
 6:ハッシュ関数名
 7:ハッシュ関数名 (小文字)
 8:算出したハッシュ値(設定の大文字小文字の影響を受ける)
 9:ファイルサイズ(設定の 単位換算, 桁区切り の影響を受ける)
10:単位換算したサイズとバイト単位の2つのファイルサイズ
   (設定の桁区切りの影響を受ける)
11:ファイルの更新日(ユーザ指定[地域と言語のオプション]の日付フォーマット)
12:ファイルの更新日( ISO 8601 フォーマット)
13:ファイルの更新時刻(ユーザ指定[地域と言語のオプション]の時刻フォーマット)
14:ファイルの更新時刻( ISO 8601 フォーマット)
15:改行(改行コードは設定などにより自動決定)
16:タイムゾーン指定子(±hh:mm)
17:現在日(YYYYMMDD)
18:現在時刻(hhmmss)
に置換されます。


・インクリメンタルサーチ(フィルタリング)機能について
ファイルが登録されている状態で F3, Alt+S またはメニューから 「Search」をクリック
することでダイアログが出ます。
「F」 / 「H」ボタンで、検索対象を フルパス / ハッシュ値 から選択できます。

入力した文字列が、リスト中の フルパス、算出したハッシュ値 の中にあれば、それを
リストアップし、入力するたびに絞り込んでいきます。
この際、 「登録数」 = マッチ数 になります。「エラー数」は「Start」ボタンを押さな
い限り変化しません。

フルパス検索時は、正規表現として検索し、
ハッシュ値検索時は、ただの文字列として検索します。
この際、大文字小文字は区別しません。

ハッシュ値検索時の検索をワイルドカードで表現すると、
*入力した文字列*
で検索処理しているようなものです。

検索結果のリストを対象にハッシュ算出やファイル操作などの通常操作も可能ですので、
フィルタリング目的にも使用できます。

本機能は "基点ごとの重複ファイル数表示機能" にも影響(フィルタリング)します。


・エラー発生時などの表示色について (下にいくほど高優先度)
                               | 背景色 | プログレスバー色(Windows 7, 8 の場合)
-------------------------------+--------+---------------------------------------
正常計算中/計算終了            |        | 緑
一時停止中                     |        | 黄
重複ファイル(奇数)             | 薄い紫 |
重複ファイル(偶数)             | 薄い黄 |
クリップボードとハッシュ値一致 | 薄い緑 |
算出エラー/キャンセルファイル  | 濃い赤 | 赤
検証エラーファイル             | 薄い赤 | 赤

タスクバーボタンでのプログレスバー表示は、 Windows 7 以降かつ Windows Aero が
有効になっている必要があります。


・Command Line Options
Usage: HashSum.exe [OPTION]... [FILE / DIR]...

Options:
-as
       起動後に自動で処理を開始する (autostart)
-ae
       算出後自動終了。動的変更からも変更可能。 (autoexit)
-AE
       検証エラー/算出エラー/登録エラー があれば自動終了しない以外 -ae と同じ


-r
       ファイル登録時、サブディレクトリを含める。 -R と排他
       これを使用する場合は、[FILE / DIR]... よりも先に指定してください。
-R
       ファイル登録時、サブディレクトリを含めない以外 -r と同じ
-l
       VolumeSerialNumber と FileID が同じ場合、算出ハッシュをリンクする。
-L
       VolumeSerialNumber と FileID を取得しない。


-hf algorithm[,algorithm...]
       指定したハッシュ関数アルゴリズムをカラムに追加 (hashfunction)
       (プラグインで拡張したハッシュも指定可能)
-HF algorithm[,algorithm...]
       指定したハッシュ関数アルゴリズムのみカラムに表示 (HASHFUNCTION)
       (プラグインで拡張したハッシュも指定可能)
-nsc
       カラム設定を保存しない。動的変更からも変更可能。
       -HF オプション利用時など、一時的に表示カラムを変更したい場合に使用


-lh file
       読み込むハッシュファイルのパス (loadhash)
-c file
       今のところ -lh と同じ。
       GNU Coreutils との互換性向上のため、 -c を指定した場合、 -as -ae -lh を
       指定したことと同義とすることを検討中。
-lhe file
       除外リストとして読み込むハッシュファイルのパス
       これを使用する場合は、他の登録用オプションより先に指定してください。
-lhd file
       削除リストとして読み込むハッシュファイルのパス


-rf file
       ハッシュを算出するファイルのレスポンスファイルのパス
-rh file
       ハッシュファイルのレスポンスファイルのパス
-rhe file
       除外リストとして読み込むハッシュファイルのレスポンスファイルのパス
       これを使用する場合は、他の登録用オプションより先に指定してください。
-rhd file
       削除リストとして読み込むハッシュファイルのレスポンスファイルのパス


-sp file
       算出後自動保存するパス。ファイル名のみ指定した場合カレントディレクトリに
       保存。保存形式などは前回保存時の設定を使用。置換書式使用可。

       -sp オプションで利用時のみ、置換書式の <DEFAULTSAVENAME> 使用可。
        <DEFAULTSAVENAME> は、 DefaultFileName キー が指定されていればその文字
       列、なければ HashSum のデフォルトファイル名へと置換される。

        <DEFAULTSAVENAME> 使用時は、指定されているハッシュファイル書式のデフォ
       ルト拡張子が付加され、不使用時は付加されない。
-ow
       ファイルに出力する際、既存ファイルがあれば上書き。 -OW と排他
-OW
       既存ファイルがあれば追記する以外 -ow と同じ


-sc
       算出後ハッシュのみクリップボードヘ出力。 (SaveToClipboard)
       -hf あるいは -HF オプションで出力ハッシュを指定する。 -hf/-HF で複数指定
       した場合、指定内の下記文字列一覧中の下の方にあるハッシュが有効となる。
-SC
       HashList形式でクリップボードヘ出力し、 -hf/-HF で出力ハッシュを指定しな
       ければ、「すべてのハッシュ」形式で出力する以外 -sc と同じ
-ah
       -hf/-HF で出力ハッシュを指定した場合でも「すべてのハッシュ」形式で出力。
       -SC オプションと併用前提。 -SC 以外の -hf/-HF 利用オプションと併用不可。
-sa
       HashList形式でクリップボードヘ出力時、ファイル名のみで出力。-SC に影響。
-SA
       HashList形式でクリップボードヘ出力時、絶対パスで出力。-SC に影響。


-of n
       HashFile保存時の書式を数値で指定。数値は、保存ダイアログのコンボボックス
       表示順に上から0の連番。-sp/-SC に影響。
-oc n
       HashFile保存時の文字コードを数値で指定。数値は、保存ダイアログのコンボボ
       ックス表示順に上から0の連番。-sp に影響。
-on n
       HashFile保存時の改行コードを数値で指定。数値は、保存ダイアログのコンボボ
       ックス表示順に上から0の連番。-sp に影響。
-ob
       HashFileを Unicode で保存時、 BOM をつけない。-sp に影響。
-OB
       HashFileを Unicode で保存時、 BOM をつける。-sp に影響。
-oa
       HashFile保存時、相対パスで出力。-sp に影響。
-OA
       HashFile保存時、絶対パスで出力。-sp に影響。


-que
       算出時、他の -que オプション使用HashSumが算出中の場合待機する。(Queuing)
       待機中、今すぐ算出したい場合は「Resume」ボタンを押してください。
       関連付け起動時など、 -lh / -c / -rh と併用することを想定したオプションで
       すが、現在のところ ShellIntegration.exe では使用していないので、お好みで
       付加してください。


-bg
       ウィンドウを最小化。
       これを使用する場合は、コマンドラインオプションの最初で指定してください。
       -BG と併用で、バックグラウンドモード(Low-Priority Mode + 最小化)。
-BG
       Low-Priority Mode で起動。動的変更からも変更可能。
       Low-Priority Mode とは:
              プロセス優先度  : IDLE
              Low-Priority I/O: Enable (Windows Vista 以降)


-rn n
       算出後リネーム。リネーム書式は 1~3 を指定してください。範囲外の値を指定
       した場合、下位 2 bit が使用されます。 -hf/-HF で使用ハッシュを指定。
-et n
       算出後外部ツールを使用。使用する外部ツールを 1~3 で指定してください。
       範囲外の値を指定した場合、下位 2 bit が使用されます。
        -hf/-HF で使用ハッシュを指定。


-odc
       重複判定条件(Hash 除く)が一致するファイルのみハッシュ算出する
-ODC
       重複判定条件(Hash 除く)が一致するファイル以外もハッシュ算出する
-dcf
       重複判定条件(FileName) を有効にする
-DCF
       重複判定条件(FileName) を無効にする
-dcr
       重複判定条件(RelativePath) を有効にする
-DCR
       重複判定条件(RelativePath) を無効にする
-dcs
       重複判定条件(FileSize) を有効にする
-DCS
       重複判定条件(FileSize) を無効にする
-dch
       重複判定条件(Hash) を有効にする
-DCH
       重複判定条件(Hash) を無効にする
-dcb
       重複判定条件(基点が同じファイルを除外) を有効にする
-DCB
       重複判定条件(基点が同じファイルを除外) を無効にする
-dce
       重複判定条件(同一ディレクトリを除外) を有効にする
-DCE
       重複判定条件(同一ディレクトリを除外) を無効にする
-ad not|old|new|top|bottom
       算出後自動重複削除。 (動作指定文字列は大文字小文字を区別する)
       not
              算出後自動重複削除しない
       old
              算出後自動重複削除 (古いファイルを残す)
       new
              算出後自動重複削除 (新しいファイルを残す)
       top
              算出後自動重複削除 (一番上のファイルを残す)
       bottom
              算出後自動重複削除 (一番下のファイルを残す)
-adc
       自動削除時削除確認する。-lhd/-rhd/-ad に影響。
-ADC
       自動削除時削除確認しない以外 -adc と同じ
-rl old|new|top|bottom
       算出後、選択重複グループを HardLink / SymbolicLink へ置換。
       (動作指定文字列は大文字小文字を区別する)
       動作指定文字列は SymbolicLink への置換時のみ意味を持ち HardLink への置換
       時はどれを選択しても同一動作となります。
       詳細は「重複ファイルの HardLink / SymbolicLink への置換機能について」をご
       参照ください。
       old
              古いファイルを選択
       new
              新しいファイルを選択
       top
              一番上のファイルを選択
       bottom
              一番下のファイルを選択

コマンドの初めは `-' で記述していますが、 `/' でも構いません。
各オプションは基本的に複数回使用可能です。複数使用できないものは最後に指定した
ものが有効となります。
-ow, -OW, -of, -oc, -on, -ob, -OB, -oa, -OA は、iniがリードオンリー属性時無効に
なります。
設定の動的変更と -as, -r, -R, -l, -L, -sa, -SA, -odc, -ODC, -dcf, -DCF, -dcr, -DCR, 
-dcs, -DCS, -dch, -DCH, -dcb, -DCB, -dce, -DCE, -ad, -adc, -ADC, -rl, は、オプシ
ョン使用時のみ有効であり、設定ファイルに保存されません。

Examples:
HashSum.exe -hf MD5 -as "c:\foo\b ar.iso" d:\baz\qux\
HashSum.exe -HF MD5,SHA1 -as "c:\foo\b ar.iso" d:\baz\qux\
HashSum.exe -as -rf c:\foo\bar.res
dir *.zip /B/A-D/S > "%TEMP%\foo.res" && HashSum.exe -as -ae -rf "%TEMP%\foo.res" -sp "<DEFAULTSAVENAME>"
HashSum.exe -as -ae -SC -HF SHA256 -sp "c:\HASH\<ALGORITHM>SUMS" -ow *
HashSum.exe -as -ae -hf crc32,crc64 -SC -ah *
HashSum.exe -as -ae -HF MD5 -rn 1 *.zip
HashSum.exe -as -ae -HF MD5 -et 1 *.jpg
for /r /d %i in (*) do start "" /D "%i" /WAIT /MIN HashSum.exe -as -ae -HF SHA1 -sp "<ALGORITHM>SUMS" -ow -R "%i"
for /r %i in (.) do start "" /WAIT /MIN HashSum.exe -as -ae -HF SHA1 -sp "%~fi\<ALGORITHM>SUMS" -ow -R "%i"

GNU Core Utilities (GNU Coreutils) 相当オプション:
  (Coreutils は UNIX 上での実行例です。お好みで `-b' binary mode にしてください)
 * SHA-256 Create
   sha256sum [file]... > SHA256SUM
   HashSum.exe -as -ae -HF sha256 -sp SHA256SUM -ow [file]...
 * SHA-512 Verify
   sha512sum -c SHA512SUM
   HashSum.exe -as -lh SHA512SUM
     or
   HashSum.exe -as -HF sha512 -lh SHA512SUM
     or
   HashSum.exe -c SHA512SUM
     or
   HashSum.exe -HF sha512 -c SHA512SUM
 --- 応用 ---
 * MD5 Compute
   md5sum [file]...
   start "" /WAIT /MIN HashSum.exe -as -ae -HF md5 -sp "%TEMP%\HASHSUM" -ow [file]... & type "%TEMP%\HASHSUM" && del "%TEMP%\HASHSUM"
 * String MD5 Compute
   echo -n 'a' | md5sum
   set /P <nul="a">"%TEMP%\-"& start "" /WAIT /MIN HashSum.exe -as -ae -HF md5 -sp "%TEMP%\HASHSUM" -ow "%TEMP%\-" & type "%TEMP%\HASHSUM" && del "%TEMP%\-" "%TEMP%\HASHSUM"
 応用は、一応こういうこともできるという事を示しているだけなので、
 標準出力が必要なら、 Windows 版の Coreutils, OpenSSL, PowerShell 等を使った方
 が良い気がします。 OpenSSL の場合は、
 openssl sha256 -r [file]...
 のように -r オプションを使うことで、 GNU Coreutils Format で出力できます。

-hf, -HF で指定できるハッシュ関数アルゴリズムは以下の文字列です。
これらは、大文字小文字を区別しません。
また、プラグインで拡張したハッシュも指定可能です。
プラグインで拡張したハッシュの指定文字列は各プラグインのドキュメントや作者様に
お問い合わせください。
--------------
CRC16
CRC16-L
CRC16-IBM-R
CRC32
CRC32C
CRC64
Adler32
xxHash
BLAKE2b
BLAKE2bp
BLAKE2s
BLAKE2sp
GOST
GOSTPRO
MD2
MD4
MD5
SHA1
SHA224
SHA256
SHA384
SHA512_224
SHA512_256
SHA512
SHA3224
SHA3256
SHA3384
SHA3512
SHAKE128
SHAKE256
Keccak224
Keccak256
Keccak384
Keccak512
Tiger128
Tiger160
Tiger
Tiger2
Whirlpool-T
Whirlpool
RIPEMD128
RIPEMD160
RIPEMD256
RIPEMD320
Panama-LE
Panama-BE
HAS160
HAVAL128_3
HAVAL128_4
HAVAL128_5
HAVAL160_3
HAVAL160_4
HAVAL160_5
HAVAL192_3
HAVAL192_4
HAVAL192_5
HAVAL224_3
HAVAL224_4
HAVAL224_5
HAVAL256_3
HAVAL256_4
HAVAL256_5
==============
[同梱ハッシュプラグインの指定文字列]
sum8
sum16
sum24
sum32
sum64
sumSysV
sumSysV(Decimal)
sumBSD
sumBSD(Decimal)
--------------


・Exit Status
32 bit のうち、 LSB から順に 検証エラー, 算出エラー, 登録エラー 数を 8 bit ずつ
出力する。
それぞれ、値が 255 より大きければ 255 が出力される。

例として、コマンドプロンプトで登録エラー数を取得する方法を以下に記す。
set /a "err=%ERRORLEVEL% >> 8*2 & 0xFF"

上位 8 bit は将来的にエラー以外に使用される可能性があることに注意してください。
(つまり、例のようにビットANDをとることを推奨するという意味です)


・文字列からのハッシュ値算出機能について
算出するハッシュは本体側とリンクしています。
よって、カラムヘッダを右クリックや、メニューの「Algorithm」から使用するハッシュ
関数を指定してください。
ハッシュ値を大小文字どちらで表示するかの設定も本体側とリンクしています。


・オープン/リード エラー時のリトライ回数について
1ファイルあたりのリトライ回数です。
設定画面からは 0 ~ 2147483647 回までにしか設定できませんが、
設定ファイル中の [Hash] セクションの ReadErrorRetryCount キーの値を変更すること
で、最大 4294967295 回にまで設定できます。


・ベンチマーク機能について
ベンチマークは "高度な設定" などの影響を受けません。

ベンチマークは全コア使用とシングルコア使用を選択できます。
シングルコア使用時は、0番目の CPU / コア でのみ動作させています。よって、その
 CPU / コア の使用率が高ければ正確な数値は出ません。
シングルコア使用時の結果の数値は 1 コア単体の処理速度です。

ベンチマーク結果の数値は小数点以下を切り捨てていますし、 Turbo Boost の影響など
でも結果は変わります。あくまで参考としてお考えください。

ベンチマーク実行時、ハッシュを正しく算出できているかセルフテストし、正しければ 
0, 問題があれば 0 以外を表示します。

ベンチマーク結果の [] の中身はデバッグ用です。気にしないでください。


・レスポンスファイルについて
レスポンスファイルは、1行に1つの ファイル / ディレクトリ のフルパスであり、
 " で囲まないでください。
 文字/改行コード は自動判定しますが、Unicode版にはなるべく UTF-16 のリトルエン
ディアン(BOM付き) で渡してください。

読み込み処理終了後削除されます。


・エンディアン変換機能について
算出済みハッシュのエンディアンを変換します。
変換後のハッシュは、コンテキストメニューや Ctrl+C の "HashOnly" 形式を選択した
場合のみコピーができます。
安全のため、それ以外の機能では通常のハッシュを用います。
同じく安全のため、有効状態で終了しても次回起動時無効になります。

通常使う必要は一切ない機能です。わかっている方だけ使ってください。


・同時算出ドライブの変更方法
設定ファイル中の [Drive] セクションに DriveMap キーを作成することで、同時算出
ドライブを変更できます。デフォルトではすべて同一ドライブとみなします。

例えば、 C:D: が同一、 E: が別HDDの場合、 "C|D,E" と指定することで、 C:D: E: の
2ドライブを同時算出するようになります。
( | は、アイ(I)やエル(l)ではなく、バーティカルバーですので注意してください。)
物理的に異なるドライブは並列処理した方が速いかもしれません。

ドライブレターが割り当てられていないUNCパスなどは、すべて同一ドライブとみなしま
す。

内部的には、最大 64 ドライブまで同時算出できるように設計してありますが、
現在の設定方法では、 26 + 1 ドライブが実質的な最大値になります。
(将来的にはUNCパスごとにも設定できるようにするかもしれません。)


・1ドライブでの同時算出ファイル数の変更方法
設定ファイル中の [Drive] セクションに xxCalcFilesMax キーを作成することで、
1ドライブでの同時算出ファイル数を変更できます。(デフォルト 1)

xx には数値(ドライブID)が入ります。
ドライブIDは、初期値 1 から、上記同時算出ドライブの DriveMap キーの , ごとに 1 
ずつ加算されます。(e.g., DriveMap="01,02,03,04,05...")

例えば、 DriveMap キーを "C|D,E" とし、 C:D: ドライブで3ファイル、 E: ドライブ
で2ファイル同時算出したい場合は、
01CalcFilesMax=3
02CalcFilesMax=2
と指定します。

同時算出ドライブを変更していない場合や、ドライブレターが割り当てられていないUNC
パスなどはドライブID 00 で変更できます。

1ドライブにつき最大 64 ファイルまで同時算出できますが、よほど高速なドライブか
よほど低速なハッシュ関数でもない限り、複数同時算出するように変更しても逆に遅く
なることが多いと思います。
(ハッシュの速度はベンチマーク機能を参考にしてください。)
ただし、小さいサイズのファイルが大量にある場合はいくつか複数同時算出した方が早く
なることが多いようです。
64 以上を入力した場合は強制的に 64 になります。

「高度な設定」内の「バッファサイズ」は、1ファイルあたりのバッファサイズです。
 32 bit プロセスのユーザ空間は 2GB 、 64 bit プロセスでは 8TB/128TB(Windows 8.1,
  Windows Server 2012 R2 以降の場合) であることに注意してください。また、これは
スレッド数の制限にも影響します。


・Tips
 * MAX_PATH を超えた長さのパスを扱いたい場合
   パスの前に "\\?\" というプレフィックスを追加して HashSum に渡してください。
   ( UNC ならば "\\?\UNC\" プレフィックス )
   ハッシュファイルやレスポンスファイルを扱う場合でも同様にプレフィックスを使用
   してください。

    * ハッシュファイルを保存する場合、絶対パスで出力してください。
    * MAX_PATH を超えているパスのファイル操作などはできません。


 * 「高度な設定」内の「バッファサイズ」、「最大I/O単位」は、ある程度スペックの
   あるPCであれば、
バッファサイズ : 128
最大I/O単位 : 8192
ドライブに直接アクセスする : チェックあり
   上記以上にするのがおすすめです。
   初期値は、低スペックPCでも動作する(であろう)値にしてあるので、遅いです。

   算出するファイルサイズが大きければ、「ドライブに直接アクセスする」にチェック
   を入れると、OSなどの動作が軽くなるかもしれません。(最大I/O単位を大きな値にす
   る場合はチェックありを推奨します。)

   SSDなどの高速なドライブで、かつ、メモリ(物理メモリ&ユーザ空間)に余裕があれ
   ば、もっと増やしてもいいかもしれません。しかし、増やしすぎると逆に遅くなる可
   能性があるので、PCスペックにあわせて適宜変更してください。

   バイト単位でどちらも 2の冪乗 であり、かつ、"バッファサイズ" は "最大I/O単位" 
   で割り切れ、商が1より大きくなるようにしてください。
   よくわからなければ、どちらも絶対に変更しないでください。
   あまり変な値でなければ条件を満たさずとも動きはしますが、効率が悪いです。
   (変な値を指定すると、正しいハッシュ値を算出できなくなります。)


 * 低スペックPCなどで処理が重い場合、
    1.重複ファイル検出機能を無効にする。 (「高度な設定」で閾値設定可)
    2.クリップボード監視&比較機能を無効にする。
    3.「高度な設定」内の「算出スレッドの優先度」を IDLE にする。
   と改善するかもしれません。上から順にお試しください。


 * 選択ファイルのフルパスを1行でコピーしたい場合
   通常のコンテキストメニューからだとフルパスのコピーは複数行になりますが、
   1行でコピーしたい場合もあるかと思います。その場合は、外部ツールに
02Name=clip
02Path=%ComSpec%
02CmdLine=/C echo <FULLPATH> | %SystemRoot%\System32\clip.exe
02LumpSelFiles=1
   のように登録することで実現できます。(選択ファイル数が多いと失敗します。)
   「clip.exe」は、 Windows Server 2003 以降には標準搭載されています。なるべく
   フルパスで指定してください。


・使用できる正規表現の文法について
使用できる正規表現文法は ECMAScript 準拠です。詳細は下記 URI をご覧ください。
http://msdn.microsoft.com/en-us/library/bb982727.aspx


・リストビューのソートについて
DuplicateFiles カラムを除き、昇順ソートは安定ソートです。(DuplicateFiles カラム
も基本的には安定ソートですが、算出エラー/キャンセルファイルは下に並べられます)


・仕様
 * ハッシュ算出中に算出対象ファイルをリストから削除した場合、全体の進捗状況表示
   からその分が引かれない。
 * SHAKE128 / SHAKE256 の出力長によっては全体がリストビューに表示されない。
   (ハッシュファイルやクリップボード出力等その他機能では全体が使用されます)
 * ハッシュファイル読み込み時、記載されているハッシュが 4 桁未満だった場合無視さ
   れる。(出力長を設定可能なアルゴリズムでそのような設定にしている場合)
 * クリップボードからハッシュ読み込み時、ハッシュが 4 桁未満か奇数桁だった場合無
   視される。(出力長を設定可能なアルゴリズムでそのような設定にしている場合)(奇
   数桁は特殊用途で有り得るようです)
 * 右寄せ表示カラム (ファイルサイズ, VolumeSerialNumber, FileID) を左端にした場
   合、左寄せ表示になる。(Windowsの仕様)
 * 外部ツールで長いコマンドラインを渡せない。(Windowsの仕様)
 * HashSum インストール直後にオートアップデートすると更新に失敗することがある。
   (Restart Manager が失敗しているため恐らくWindowsの仕様)
   (現時点では Windows 7 上でパス中に空白を含む場合にのみ現象確認できたが常に失
    敗するわけではない。また、 Windows 8.1 や 2012 R2 などでは起きない模様。)


・対応ハッシュ関数について補足
 * CRC16-CCITT-R
   通常、ファイルと一緒に表示されている CRC16 はこれです。
 * CRC16-IBM-R
   LHA(LZH) 形式などで利用されている CRC16。
 * xxHash
   LZ4 形式などで利用されている。 HashSum での Seed も LZ4 に準拠しています。
 * CRC64-ECMA-R
   xz 形式などで利用されている CRC64。
 * BLAKE2sp-256
   BLAKE2sp の 256 bit。
   WinRAR 5.00 beta 版 の RAR 5.0 archive format でチェックサムとして選択可。

ハッシュのカラムヘッダ末尾の数値はそのハッシュの16進数の桁数を参考情報として表示
しています。ビット長が知りたい場合は、 4 を掛けてください。
出力長を設定可能なアルゴリズムは * で表示しています。(設定方法は ChangeLog 参照)


・自動更新機能について
ソフト初回起動時、有効にするかどうかを尋ねます。
有効無効は "Tools" メニューから変更可能です。

自動更新機能はデジタル署名(ECDSA-521, SHA-512)によってセキュリティが確保されてい
ます。
また、バージョンアップ情報の確認は SSL/TLS によって行われます。
現時点ではアップデートファイルのダウンロードには SSL/TLS を使用しませんが、この
完全性はデジタル署名検証済みバージョンアップ情報内のハッシュを検証することに
よって確保されます。(Unix系OSでよくある方法と同じです)

署名をチェックする項目は以下の通りです。
  1. "Bcrypt.dll" が Microsoft(R) の正規品であるか検証
  2. 自分自身の検証
  3. ConfigFile の検証
  4. VersionUp Info の検証
  5. Update File の検証
これらすべてのデジタル署名が正常に検証できた場合にのみアップデートが行われます。

ただし、 Windows が正規品ではなかったり、他プロセスのメモリを書き換えたりするソ
フトがある場合などはセキュリティ云々以前の問題です。そのような環境での保証は致し
かねます。

自動更新機能は Windows Vista 以降でのみ動作します。


・OS が Windows 2000 以前で本ソフトウェアを起動できない場合
Windows 2000 以前での動作には、 Gdiplus.dll が必要となります。
下記 URI からダウンロードし、 Gdiplus.dll を本ソフトウェアと同じディレクトリか、
OS が NT 系なら %SystemRoot%\system32 に、 9x 系なら %windir%\System においてく
ださい。
http://www.microsoft.com/en-us/download/details.aspx?id=18909

■著作権・使用条件・免責など
1.本ソフトウェア、および同梱配布物の著作権は、謝辞記載の著作物を除き、作者である
   冬野 善文 が保有しています。
2.作者の許可なく、転載、再配布を行うことを禁止します。
  雑誌・書籍などの有形物へ紹介記事などを掲載する場合、あるいはCD-ROMなどに収録
  する場合は、必ずご一報ください。
3.転載・再配布時は、書庫ファイル名及び格納ファイルを改変することを禁止します。
4.ソフトウェアの全部または一部を修正、改変、逆コンパイル、逆アセンブル、または
  その他のリバースエンジニアリングなどの行為を禁止します。
5.本ソフトウェアの仕様やドキュメントの内容などは、予告なく変更・廃止することがあ
  ります。
6.ソフトウェアは有用であることを願って頒布されますが、 "現状のまま" 提供され、
  明示黙示を問わずいかなる保証もありません。
  ソフトウェアに 起因/関連 して発生したいかなる損害にも作者は責任を負いません。
  また、作者はバージョンアップやサポート含め、一切義務を負わないものとします。

■謝辞
・OpenSSL 作者:The OpenSSL Project  License:OpenSSL License + SSLeay License
  公式サイト&ソースコード入手元:http://www.openssl.org/
  * This product includes software developed by the OpenSSL Project for use in 
    the OpenSSL Toolkit (http://www.openssl.org/).
  * This product includes cryptographic software written by 
    Eric Young (eay@cryptsoft.com).
  * This product includes software written by Tim Hudson (tjh@cryptsoft.com).
  OpenSSL に関しては、docフォルダ内のドキュメントをご覧ください。
  * OpenSSL は一部のハッシュアルゴリズムの計算処理の中の一部でのみ使用しており、
    SSL脆弱性の影響を受けることはありません。

・xxHash 作者:Yann Collet氏  License:BSD 2-Clause License
  公式サイト&ソースコード入手元:http://code.google.com/p/xxhash/
   xxHash - Fast Hash algorithm
   Copyright (C) 2012-2014, Yann Collet.
   BSD 2-Clause License (http://opensource.org/licenses/BSD-2-Clause)

   Redistribution and use in source and binary forms, with or without
   modification, are permitted provided that the following conditions are
   met:

       * Redistributions of source code must retain the above copyright
   notice, this list of conditions and the following disclaimer.
       * Redistributions in binary form must reproduce the above
   copyright notice, this list of conditions and the following disclaimer
   in the documentation and/or other materials provided with the
   distribution.

   THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
   "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
   LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
   A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
   OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
   SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
   LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
   DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
   THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
   (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
   OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

有用なツールを提供していただき、大変感謝しております。
この場を借りて御礼申し上げます。

■ChangeLog (@:NEW +:EXPANSION *:CHANGE -:FIX [Ver.3.12 or later])
Ver.6.00
 @ Plugin 対応。 (HashSum Plugin SDK Ver.1.00)
   HashSum Plugin SDK を使用すれば独自プラグインを開発できます。
     cf.https://github.com/YoshifumiFuyuno/HashSum-Plugin-SDK
   (ShellExt-Installer ではプラグインで拡張したハッシュも関連付けできます。)
   (プラグインで拡張したハッシュは、ハッシュファイル読み込み時や -hf/-HF オプ
    ションなどでも使用できます)
   (プラグイン対応に伴う記載していない諸々の変更あり)
 @ 自動更新に対応。 (AutoUpdater.exe (Ver.1.00))
   (ソフト初回起動時、有効にするかどうかを尋ねます。
    有効無効は "Tools" メニューから変更可能です。)
   (自動更新機能はデジタル署名(ECDSA-521, SHA-512)によってセキュリティが確保され
    ています。具体的には"自動更新機能について"をご覧ください。)
   (デフォルトでは 7 日間隔で HashSum 起動時に更新をチェックします。
    変更したい場合は、設定ファイル中の [AutoUpdate] セクションに Interval, キー
    を作成して日単位で設定してください。)
   (自動更新機能は Windows Vista 以降でのみ動作します)
 @ Windows Vista 以降の Restart Manager に対応。
   (ただし状態復元は行いません。)
 @ 設定 -> "出力" で出力情報を "すべて出力", "正常算出ファイルのみ", 
   "算出エラー / 未算出 ファイルのみ" から選択できるようにした。
   Ver.5.10 の "算出エラー / 未算出 ファイルを出力から除外する" は 
   "正常算出ファイルのみ" に変更。
 + ハッシュプラグインを2つ同梱。
     * Sum_x86.dll, Sum_x64.dll
         7種類 (sum8, sum16, sum24, sum32, sum64, sumSysV, sumSysV(Decimal))
     * SumBSD_x86.dll, SumBSD_x64.dll
         2種類 (sumBSD, sumBSD(Decimal))
   (この2つのハッシュプラグインの全ソースコードは HashSum Plugin SDK に同梱して
    います。プラグイン開発の参考にしてください。)
   (-hf/-HF オプションでは上記の文字列で指定できます)
 + ベンチマーク機能で全コア使用とシングルコア使用を選択実行できるようにした。
 + 基点ごとの重複ファイル数表示機能のウィンドウでカラムソート可能にした。
 * ShellExt-Installer は"関連付け / シェル拡張"メニューからのみ実行可能にした。
 * -rl オプション使用時は重複判定条件の自動無効化機能を無効にするようにした。
 * manifest に Windows 10 (2014-10-01(米国時間)に公開された TechnicalPreview 版)
    の supportedOS Id 追加。(開発中の正式版でも GUID は変わらないと思われます
   が、もし変更された場合は追随します)
 * OpenSSL を openssl-1.0.2-stable-SNAP-20141122 へバージョンアップ。
 - "Algorithm & Column"設定画面でカラム幅を入力後即OKボタンを押すと入力した値が
   適用されない問題を修正。

 Shell Integration: ShellExt-Installer (EXE Ver.1.06)
 @ 親プロセスと連携できるようにした。
 @ 関連付けできる拡張子を親プロセスから追加できるようにした。

Ver.5.11 - 未公開
 * 算出対象ファイルキュー関連の処理を大幅に変更。
   (この変更により常にリストビューの上の方から算出されるとは限らなくなりました)
   (特にファイルが大量に登録されている場合の "すべて算出" / "すべて再算出" 処理
    の効率がよくなっています。)
 * ベンチマークから Tiger, Whirlpool, を廃止。
 * Ver.3.13 で追加した「リストビューでのソート時、ソート対象カラムの背景色を変更
   する」機能の廃止。
 - スクリプトなどから HashSum の非表示実行ができなかったのでできるようにした。

Ver.5.10 - 未公開
 @ 設定 -> "算出エラー / 未算出 ファイルを出力から除外する" を追加。
   (クリップボード出力時は 入力 / 算出 ハッシュが含まれる場合のみ。かつ、
     "HashOnly" 形式での出力時は除外。(未算出時のスキップは Ver.4.05 から存在))
 + 重複ファイルを各リンク(HardLink / SymbolicLink) に置換する機能で、
   HardLink への置換失敗時にのみ SymbolicLink にするのではなく、
   最初から SymbolicLink へも置換できるようにした。
   設定 -> "置換" から以下3つの中から選択できます。
     * HardLink へ置換する
     * HardLink へ置換失敗時 SymbolicLink にする
     * SymbolicLink へ置換する
 + ファイルが大量に登録されている場合、選択数によっては選択ファイルの合計サイズ
   などの情報をすべて見れないことがあったので、選択時は選択数表示箇所の
   マウスオーバーによってツールチップを表示するようにした。
 * ファイル列挙時、 SymbolicLink ファイルのファイルサイズは、
    VolumeSerialNumber や FileID と同じくリンク元の情報を取得するようにした。
 * 文字列からのハッシュ計算、選択ファイル数や選択ファイルの合計サイズの計算、
   インクリメンタルサーチ実行のタイミングを変更。
 * 重複判定条件が一致するファイルのみハッシュ算出する機能を有効にして算出した
   場合に、重複ファイルが存在し、かつ、 DuplicateFiles カラムが非表示ならば自動
   で DuplicateFiles カラムを表示するようにした。
 * 算出処理効率化。
 * 文字列からのハッシュ計算処理効率化。
 * 若干のパフォーマンス向上。
 * mkslink.exe (Ver.1.04) に対応。
 - ベンチマーク実行後、ベンチマークウィンドウを閉じようとしても閉じれないことが
   あった問題を修正。

 Other File: mkslink.exe (EXE Ver.1.04)
 * エラー処理の強化。

Ver.5.09
 + コマンドラインオプションに -l, -L, 追加。
 * Ver.5.02 での最適化をさらに改良。

Ver.5.08
 * リストビューへのファイル登録処理の大幅な高速化。
 * 算出処理効率化。
 * その他若干のパフォーマンス向上。

Ver.5.07
 + 対応ハッシュ関数を6つ追加。(SHA3-224, SHA3-256, SHA3-384, SHA3-512, SHAKE128,
    SHAKE256)
   56 + 6 = 全62種に対応。
   (SHA-3 の Draft FIPS 202 が公開されたのでそれに準拠。
     cf.http://csrc.nist.gov/publications/drafts/fips-202/fips_202_draft.pdf
    まだ Draft 版 FIPS ですので、正式対応したわけではありません。
    GNU Coreutils の動きにもよりますが、コマンドラインオプションの -hf, -HF で
    指定する文字列やハッシュファイル拡張子は変更する可能性があります。
    また、 Keccak は廃止予定(Ver.3.19参照)としていましたが、他ソフトとの互換性の
    観点から暫くはこのまま対応することにします。(一部のソフトが Keccak のことを
     SHA-3 としているため。))
   (SHAKE128 / SHAKE256 の出力長は可変長ですが、
    デフォルトでは 512 Bytes (4096 bits) の出力となります。
    出力長を変更したい場合は、設定ファイル中の [Hash] セクションに
    SHAKE128_HashSizeBytes, SHAKE256_HashSizeBytes, キーを作成して
    バイト単位で設定してください。)
 + ファイル列挙中もタスクバーボタンでプログレスバー表示するようにした。
   (Windows 7 以降)
 * ファイルが大量に登録されている場合の算出処理効率化。
 * CPU / コア 数の少ない環境でのコンテキストスイッチを減らした。
 * メモリ管理アルゴリズムの変更。
 * BLAKE2 系のコードを 20140114 ベースの物に更新。
    cf.https://github.com/BLAKE2/BLAKE2/tree/22a1ce9b2f81115068688989a1c325662e026b52
 * 最大I/O単位のデフォルトを 256 KiB から 1 MiB に引き上げ。
 * GNU 形式のハッシュファイル読み込み時、行頭に [! ] の2つのうちいずれかがあれば
   その行をコメント扱いするようにした。
 * ベンチマークから RIPEMD-128, RIPEMD-160, RIPEMD-256, RIPEMD-320, を廃止。
   代わりに SHA3-224, SHA3-256, SHA3-384, SHA3-512, を追加。

 Shell Integration: ShellExt-Installer
 + ShellIntegration.exe で関連付けできる拡張子に .sha3224, .sha3256, .sha3384, 
    .sha3512, .shake128, .shake256, .keccak224, .keccak256, .keccak384,
    .keccak512 を追加。
   (設定を変更しただけで、 ShellIntegration.exe 自体に変更は一切なし)

Ver.5.06 - 未公開
 + 対応ハッシュ関数を2つ追加。(CRC-32C (Castagnoli), xxHash)
   54 + 2 = 全56種に対応。
   (xxHash の Seed は LZ4 準拠です。)
 + コマンドラインオプションに -AE, 追加。
 + 基点ごとの重複ファイル数表示中は、算出終了後自動で表示を更新するようにした。
 + 基点ごとの重複ファイル数表示機能のウィンドウ上で OLE ドラッグ&ドロップ でき
   るようにした。(選択したディレクトリの重複ファイルが対象になります。)
 + 基点ごとの重複ファイル数表示機能のウィンドウにコンテキストメニュー表示ボタン
   追加。(選択したディレクトリの重複ファイルが対象になります。)
 * 基点ごとの重複ファイル数表示機能のウィンドウは1つしか開けないようにした。

 Shell Integration: ShellExt-Installer
 + ShellIntegration.exe で関連付けできる拡張子に .crc32c, .xxhash を追加。
   (設定を変更しただけで、 ShellIntegration.exe 自体に変更は一切なし)

Ver.5.05 - 未公開
 * mkslink.exe (Ver.1.03) に対応。

 Other File: mkslink.exe (EXE Ver.1.03)
 * x86 版で、呼び出し元の HashSum が x86 版以外ならファイルシステムリダイレクト
   を無効にするようにした。

Ver.5.04 - 未公開
 + mkslink.exe (Ver.1.02) に対応。
 * 若干のパフォーマンス向上。

 Other File: mkslink.exe (EXE Ver.1.02)
 + SymbolicLink 作成時、絶対リンクと相対リンクのどちらにするか選択できるようにし
   た。

Ver.5.03 - 未公開
 + 対応ハッシュ関数を4つ追加。(BLAKE2b, BLAKE2bp, BLAKE2s, BLAKE2sp)
   50 + 4 = 全54種に対応。
    cf.https://blake2.net/
   (BLAKE2 系の出力長は可変長ですが、デフォルトでは以下の出力となります。
    BLAKE2b-512, BLAKE2bp-512, BLAKE2s-256, BLAKE2sp-256, 
    出力長を変更したい場合は、設定ファイル中の [Hash] セクションに
    BLAKE2b_HashSizeBytes, BLAKE2bp_HashSizeBytes, BLAKE2s_HashSizeBytes, 
    BLAKE2sp_HashSizeBytes, キーをそれぞれ作成してバイト単位で設定してください。
    不正な値が設定された場合は各ハッシュの最大長が指定されたものとみなします。)
   (WinRAR 5.00 beta version の RAR 5.0 archive format でチェックサムとして
     BLAKE2sp が選択できるようになっているため対応しましたが、
     WinRAR 5.00 の正式版や将来のバージョンで BLAKE2sp が廃止されるなどした場合
    は、本ソフトウェアでも BLAKE2 系は廃止するかもしれません。)

 Shell Integration: ShellExt-Installer
 + ShellIntegration.exe で関連付けできる拡張子に .blake2b, .blake2bp, .blake2s, 
    .blake2sp を追加。
   (設定を変更しただけで、 ShellIntegration.exe 自体に変更は一切なし)

Ver.5.02 - 未公開
 + FileID カラムは 64 bit 毎に区切って表示するようにした。
 * 最近の CPU(Haswell) & OS への最適化をさらに推し進めた。
   (代償に古い CPU (特にPentium 4など) ではVer.5.01以前より多少遅くなっています)

Ver.5.01 - 未公開
 @ 隠し機能の1つであった OLE ドラッグ&ドロップ 対応を正式機能へ昇格した。
   (リスト上のファイルをエクスプローラや他ソフトにドラッグ&ドロップできます)
   (複数ファイル可。右ドラッグ&ドロップも可能)
 * SymbolicLink の作成機能を別プロセス (mkslink.exe (Ver.1.00)) に分離した。
   (mkslink.exe は Windows Vista 以降でのみ動作します)

Ver.5.00 - 未公開
 / 大規模なリファクタリング。

Ver.5.00beta3 - 未公開
 + 重複ファイルを HardLink / SymbolicLink に置換した際、 FileID を再取得し、リン
   クを再構築するようにした。
   (算出ハッシュをリンクして算出を高速化する機能有効時のみ)
 * 重複ファイルを HardLink / SymbolicLink に置換する際、置換元と置換先の 
   VolumeSerialNumber と FileID が同じ場合は処理をスキップするようにした。
   (算出ハッシュをリンクして算出を高速化する機能有効時のみ)
 * インクリメンタルサーチ中にリストからファイルを削除した場合、その削除ファイル
   はインクリメンタルサーチ終了後も削除されたままになるようにした。
 * インクリメンタルサーチ終了後はカラムヘッダのソート記号とソート対象カラムの背
   景色を消すようにした。
 * リストから全削除する場合の処理を高速化。 (インクリメンタルサーチ中は除く)

Ver.5.00beta2 - 未公開
 * VolumeSerialNumber と FileID が同じで算出ハッシュをリンクして算出を高速化して
   いる場合に、リンクしているうちの1つを算出中キャンセルした時、それ以外の同一リ
   ンクファイルも算出エラーとしてカウントするようにした。
 - インクリメンタルサーチ中にリストからファイルを削除した場合に、その削除ファイ
   ルを1度だけリストに重複登録できるようになっていたバグを修正。

Ver.5.00beta1 - 未公開
 @ VolumeSerialNumber と FileID が同じ場合、算出ハッシュをリンクして算出を高速化
   する機能を追加。 (「高度な設定」から有効無効を切り替え。デフォルト:無効)
   (OS が Windows 8 以降であれば 64 bit の VolumeSerialNumber に対応しています。
    OS が Windows Server 2012 以降であれば、 Resilient File System (ReFS) の
     128 bit FileID に対応しています。)
   (本機能を有効にするとファイル登録時の列挙が遅くなります)
 + 上記機能追加に伴い、 VolumeSerialNumber, FileID カラム追加。
   (何れもデフォルト非表示。また、上記機能無効時や取得失敗時は空白で表示される)

Ver.4.08 - 未公開
 @ 基点ごとの重複ファイル数をカウント表示する機能を追加。
   ( Toolメニュー -> "基点ごとの重複ファイル数" )
   ( インクリメンタルサーチ中は表示中のファイルのみカウント対象となります )
 + 重複ファイルの HardLink / SymbolicLink への置換機能終了時、置換に失敗したファ
   イルをログ表示するようにした。
   (算出後自動終了が有効な場合は除く)
 + 重複判定条件に "基点が同じファイルを除外" オプション追加。
 + コマンドラインオプションに -dcb, -DCB, -rl, 追加。
 * ファイルが大量に登録されている場合の "すべて算出" 処理の効率化。
 * 全体/個別 進捗状況表示更新タイミングを変更。
 * 一定時間以上全体の進捗パーセントに変化がない場合に強制的に推定残り時間表示を
   更新できるようにした。 (デフォルト:3000 ms)
 * manifest に Windows 8.1 (2013-06-26 に公開された Preview 版) の
   supportedOS Id 追加。(開発中の8.1正式版でも GUID は変わらないと思われますが、
   もし変更された場合は追随します)

Ver.4.07 - 未公開
 @ 重複ファイルを各リンク(HardLink / SymbolicLink) に置換する機能を追加。
   (SymbolicLink は選択したファイルへの絶対リンクになります)
   (OS とファイルシステムが対応している必要があります。
    また、 SymbolicLink への置換は Windows Vista 以降で特権がある場合のみ使用で
    きます)
 * GNU 形式のハッシュファイル読み込み時、行頭に ; があればその行をコメント扱いす
   るようにした。(従来は不正ハッシュファイルとして弾いていましたが、極一部のソフ
   トがヘッダとして自身のソフト名などを出力するようなので。)
 * ハッシュファイル読み込み時、どのフォーマットとして認識したかを「登録エラーフ
   ァイル一覧」に出力するようにした。
 * 重複ファイルがない場合の算出後処理を改善。
 * 重複判定条件がすべて無効だった場合は算出後のタイトルバー表示でその旨表示する
   ようにした。
 * ハッシュファイル読み込み時に一部のSFVフォーマットをGNUフォーマットと誤判定し
   ていたのでプリセットのSFVフォーマットに Priority=1 を追加して優先度を上げた。
   (既存の設定ファイルを勝手に変更したりはしませんので、この変更が必要なら各自
    追加するか、設定ファイルを削除して設定を初期化してください。)
 - ハッシュファイル保存 / File Integrity Verifier を作成 ダイアログの保存先のデ
   フォルトディレクトリが常に小文字表記になっていたので修正。

Ver.4.06
 + 重複判定条件に "同一ディレクトリを除外" オプション追加。
 + コマンドラインオプションに -dce, -DCE, 追加。
 * 算出後、重複判定条件に一致したグループ数をタイトルバーに表示するようにした。
   (算出後自動重複削除機能で削除する前のグループ数を表示)
 * 重複判定条件が一致するファイルのみハッシュ算出する機能有効時のキャンセル処理
   のレスポンス向上。
 * 重複判定条件が一致するファイルのみハッシュ算出する場合や -odc オプション有効
   時は重複判定条件の自動無効化機能を無効にするようにした。
 - 算出中にファイルを追加登録された場合、現在算出中ファイル単体の算出完了後即時
   再描画が行われないことがある問題を修正。(全算出完了後は問題なく再描画される)

Ver.4.05
 @ 重複判定条件に RelativePath 追加。 (ソフトに登録した場所からの相対パスになり
   ます。例えば、 C:\foo\bar\baz\ というディレクトリがあったとして、 C:\foo\bar\
    をウィンドウにドラッグ&ドロップしファイル登録したとすると、 bar 直下のファ
   イルの相対パスは .\ となり、 baz 直下の相対パスは .\baz\ となります。ファイル
   をドラッグ&ドロップし登録した場合は .\ となります。(レスポンスファイルから登
   録された場合も同様。ハッシュファイルから登録された場合は、検証フォルダが指定
   されていればそこから、されていなければハッシュファイルからの相対パスとなりま
   す。) 相対パスにファイル名は含まれないので、この条件を有効にすると単一ディレ
   クトリが登録されている場合は、サブディレクトリ含め同一ディレクトリ内での重複
   検出になります。 2つ以上のディレクトリ間の差異確認などで、ファイル名まで一致
   する重複を検出したい場合は、 FileName にもチェックをいれることで可能です)
 + 上記機能追加に伴い、 RelativePath カラム追加。 (デフォルト非表示)
 + 保存時のハッシュファイル書式のプリセットに 
   Labeled Tab-separated Values (LTSV) フォーマット を追加。 cf.http://ltsv.org/
   (既存の設定ファイルを勝手に変更したりはしませんので、この変更が必要なら各自
    追加するか、設定ファイルを削除して設定を初期化してください。)
 + コマンドラインオプションに -ODC, -dcf, -DCF, -dcr, -DCR, -dcs, -DCS, -dch, 
   -DCH, を追加。
 * ハッシュファイル保存 / File Integrity Verifier を作成 ダイアログの初期保存先
   を、登録時にウィンドウにドラッグ&ドロップしたパスと同じディレクトリになるよ
   うにした。 (正確には上述した RelativePath から求めています)
 * クリップボードにコピー機能で 入力 / 算出 ハッシュの "HashOnly" 形式での出力の
   場合、 入力 / 算出 ハッシュがない場合は空文字列を出力していたが、スキップする
   ようにした。
 * 全体的に効率化。
 - "同一ファイルサイズが存在するファイルのみ算出"が有効な場合、カラム順によって
   は算出後に DuplicateFiles カラムでソートされない問題を修正。
 - "Web - Hash Search" 機能でハッシュ未算出の場合はスキップするようにした。
 - MAX_PATH を超えた長さのパスのファイルを "クリップボードにコピー" -> "パス" で
   パスのみをコピーするとき、省略記号を付加して途中までしかコピーしていなかった
   ので修正。
 / リファクタリング。

 Shell Integration: Shell Extension (DLL Ver.1.13)
 @ "重複検出" メニューを追加。

Ver.4.04 - 未公開
 + コマンドラインオプションに -odc, を追加。
 + コマンドラインオプションからだけではなく、ハッシュファイル保存ダイアログから
   も既存ファイル存在時の処理を事前指定できるようにした。
 * ハッシュファイル保存ダイアログの "UNIX形式のパス記号" を設定メニューへ移動。
 * 上の変更に伴い、クリップボードにコピー機能の "選択ファイルの算出ハッシュ" -> 
   "HashList" で、 設定 -> "UNIX形式のパス記号" の影響を受けるようにした。
   ("すべてのハッシュ" 形式は除く)
 * クリップボードにコピー機能の "選択ファイルの算出ハッシュ" -> "HashList" は今
   のところ相対パス出力ではないが、 設定 -> "相対パス出力時 .\ をつける" の影響
   を受けるようにした。
   (将来的に "HashList" コピー機能は "すべてのハッシュ" 形式も含め、 Ver.4.05 で
    搭載する RelativePath を使って相対パスとして出力することを検討しています。)
 * 算出中にファイルを追加登録された場合でも、 DriveMap / xxCalcFilesMax キーでの
   指定が機能するようにした。(全算出 / 重複判定条件が一致するファイルのみ算出 中
   有効。選択ファイルの算出では無効。全体の進捗状況は一旦リセットされる)
 * 除外リスト/自動削除リスト への登録処理効率化。

Ver.4.03
 @ ハッシュファイルに記載されているハッシュと算出ハッシュが一致するファイルを
   自動削除する機能を追加。(自動削除リスト)
 @ 重複判定条件(Hash 除く)が一致するファイルのみハッシュ算出する機能を追加。
   (機能有効時、算出後に DuplicateFiles カラムでソートされます。また、コンテキス
    トメニューから "選択ファイルを算出" する場合はこの機能は無視されます)
 + コマンドラインオプションに -lhd, -rhd, -adc, -ADC, を追加。
 * 設定 -> 重複ファイル -> 自動削除時削除確認しない を追加。
   (自動削除リストと算出後自動重複削除機能に影響。無効な場合は Windows のごみ箱
    の設定に従う。)
 * 一部の行儀の悪いクリップボード監視ソフトに対処。
 - 重複判定条件のHashが無効な場合にもハッシュが算出済みかどうかチェックしていた
   のでしないようにした。

Ver.4.02 - 未公開
 * HashFile保存時、指定された文字コードで表現できない Unicode 文字が存在した場合
   、システム既定文字で置換して続行するか尋ねるようにした。
   (キャンセルした場合、出力ファイルはそのまま残します)
 * 文字列からのハッシュ計算時、指定された文字コードで表現できないUnicode文字が存
   在した場合、警告するようにした。
 * 置換処理の効率化。
 * オンラインスキャン機能で VirusTotal の仕様変更に対応。

Ver.4.01 - 未公開
 * リストビューへのファイル登録処理の高速化。
 * 算出後自動重複削除機能や -ad オプション有効時は重複判定条件の自動無効化機能を
   無効にするようにした。
 * インクリメンタルサーチ機能の高速化。

Ver.4.00
 @ 登録ファイル数が指定値以上なら重複判定条件をすべて無効化する機能をつけた。
   (一時的なもので、次起動時は元の設定に戻る。)
 / リファクタリング。

 Shell Integration: ShellExt-Installer
 + ShellIntegration.exe で関連付けできる拡張子に .sfv を追加。
   (設定を変更しただけで、 ShellIntegration.exe 自体に変更は一切なし)

Ver.4.00beta8 - 未公開
 * -ae, -lh, -c, -rhオプション使用時は重複判定条件をすべて無効化するようにした。
 * 登録エラーファイル管理方法の変更。
 * 登録エラーファイル確認ダイアログをツールウィンドウにした。
   (登録エラーファイル一覧をリアルタイムに確認できるようになった代わりに、登録エ
    ラーファイル管理が Ver.4.00beta7 より大幅に遅くなった。登録エラーになること
    はあまりないと思うのでとりあえずこの仕様でいってみる)

Ver.4.00beta7 - 未公開
 * 検証エラーカウントの効率化。
 * リストビューへのファイル登録処理の高速化。

Ver.4.00beta6 - 未公開
 * 検証エラーカウントの効率化。
 * 全体的な効率化。

Ver.4.00beta5 - 未公開
 + 正規表現でのハッシュファイル読み込み機能で、複数アルゴリズム指定可能にした。

Ver.4.00beta4 - 未公開
 * 正規表現でのハッシュファイル読み込み機能で、アルゴリズムの指定方法を変更。

Ver.4.00beta2 - 未公開
 + 正規表現でのハッシュファイル読み込み機能で、内部パーサ (GNU / lft) よりも優先
   できるようにした。

Ver.4.00beta1 - 未公開
 @ 正規表現でハッシュファイルの読み込み対応フォーマットを増やせるようにした。
   (BSD / OpenSSL / SFV 用の設定をプリセット済み)
 + キーバインド追加。(F5 : 選択ファイルを再算出, Ctrl + F5 : すべて再算出)
 + 置換書式に <MODIFIEDDATEISO8601>, <MODIFIEDTIMEISO8601> を追加。
 * "すべてのハッシュ"形式の更新日時出力を、[地域と言語のオプション]のユーザ指定
   フォーマットではなく、 ISO 8601 フォーマットにした。

Ver.3.23
 @ 他の算出中 HashSum を待機する機能を追加。 ( コマンドラインオプション -que )
 * 算出後アクティブな場合の1回のブリンクをなくした。
 - リストビューで Ctrl+C などのショートカットキーを押した時、音が鳴っていたので
   鳴らないようにした。

Ver.3.22
 @ 算出後、アクティブでなければタスクバーボタンとウィンドウキャプションをブリン
   クするようにした。 (5回)
 @ "設定" に、 "相対パス出力時 .\ をつける" オプション追加。
   (カレントディレクトリのファイルなど、必要な場合のみパスの前に付加されます。)
 * ShellExt-Installer.exe のファイル名を ShellIntegration.exe へ変更。
 * 登録処理中、登録エラーファイル確認ダイアログの "Reset" ボタンでリセットしな
   いようにした。
 * "すべてのハッシュ"形式でファイル名の前に "FileName: " という一言を入れるよう
   にした。
 - Windows Aero 有効下でリストビューカラム変更後に水平スクロールバーが表示され
   るべき場合でも表示されないことがある問題を修正。
 - High DPI 環境で "HashFileを開く" ダイアログの "除外リストに登録する" という
   文字がはみ出していたので修正。

Ver.3.21
 + コマンドラインオプションに -c, -nsc, を追加。
 + コンテキストメニューに "正常ファイルを選択", "エラーファイルを選択" を追加。
   (算出エラー/キャンセルファイルが対象。検証エラーは含まない)
 * Exit Status 変更。
 * 一部描画でアンチエイリアス処理するようにした。
 * 文字コード判定の判定精度向上。
 * 設定 -> Bytes表示時桁区切り をデフォルト有効に。

 Shell Integration: Shell Extension (DLL Ver.1.12)
 * 単一ハッシュを Clipboard にコピーする場合は -nsc オプションを併用するように
   した。

Ver.3.20
 * ShellExt_x86.exe / ShellExt_x64.exe を廃止。
   代わりに ShellExt-Installer.exe を同梱。(ShellExt-Installer Ver.1.05)
 @ ShellExt-Installer.exe 1つで x86, x64 版シェル拡張をインストール可能にした。
 @ ShellExt-Installer.exe でハッシュファイルと関連付けできるようにした。
   (デフォルトでは TextDocument のアイコン)
   (デフォルトでは廃止予定(Ver.3.19参照)の Keccak は関連付けできません。どうし
    てもという場合は手動で関連付けてください。)
 + 置換書式に <algorithm>, <DEFAULTSAVENAME> を追加。
   (後者は -sp オプションで利用時のみ有効)
 * 保存時のハッシュファイル書式で、各フォーマットのデフォルト拡張子を設定できる
   ようにした。
 * プリセットしている保存時のハッシュファイル書式の各フォーマットに、そのフォー
   マットのデフォルト拡張子を設定した。
   (既存の設定ファイルを勝手に変更したりはしませんので、この変更が必要なら各自
    追加するか、設定ファイルを削除して設定を初期化してください。)
 * manifest に Windows 8 の supportedOS Id 追加。
 * シェル拡張の、「HashFileを作成」メニューを選択時、 HashSum の設定ファイルを
   参照するのではなく、 <DEFAULTSAVENAME> を使用するようにした。 (DLL Ver.1.11)

Ver.3.20beta1 - 未公開
 * -ae オプション使用時はクリップボードを監視しないようにした。
 - 置換書式の <TZD> で Windows のタイムゾーンが カラカス / ニューファンドランド
    に設定されていた場合に正しいタイムゾーン指定子に置換されないバグを修正。
 / リファクタリング。

Ver.3.19
 + 対応ハッシュ関数を4つ追加。(Keccak-224, Keccak-256, Keccak-384, Keccak-512)
   46 + 4 = 全50種に対応。
   (本バージョンで SHA-3 勝利者である Keccak に対応しましたが、あくまで暫定対応
    です。 FIPS 公開後に SHA-3 に正式対応し、 Keccak は廃止する予定です。)
 * OpenClipboard() 失敗時リトライするようにした。 (Max:2000 ms)

Ver.3.18 - 未公開
 @ 重複判定条件を指定できるようにした。 (FileName, FileSize, Hash)
 @ 算出後に自動で重複ファイルを削除する機能を追加。
 + 置換書式に <TZD> を追加。
 + コマンドラインオプションに -ad, を追加。
 * 文字列からのハッシュ計算機能にて、エディットコントロールのテキスト上限撤廃。
 * ファイル削除成功時、リストビューからもファイルを削除するようにした。

Ver.3.17 - 未公開
 + クリップボード監視機能において、 WM_DRAWCLIPBOARD メッセージが送られてきてか
   ら、実際にクリップボードを開くまでの待機時間を変更できるようにした。

Ver.3.16
 @ ハッシュファイル中の記載ファイルを登録除外(除外リスト化)する機能を追加。
   (これを利用することで、ハッシュファイルに記載されていないファイルをリストア
    ップできます)
 @ 「高度な設定」で、 オープン/リード エラー時のリトライ回数を変更できるように
   した。
 + 登録ファイルの入力ハッシュ(InputHash カラム)に複数のハッシュ値を登録できるよ
   うにした。(入力ハッシュが一つでも不一致なら検証エラー扱いで !NG 表示)
 + ハッシュファイル読み込み時、記載されているファイルが既にリストビューに登録済
   みであれば、記載されているハッシュ値をその登録済みファイルの入力ハッシュ
   (InputHash カラム)として追加し、新規登録しないようにした。
 + コマンドラインオプションに -lhe, -rhe, を追加。
 * フルパスが重複するファイルを登録できないようにした。
 - %APPDATA%\HashSum に設定ファイルが存在する場合にシェル拡張がそれを読まないバ
   グを修正。(DLL Ver.1.10)

Ver.3.15 - 未公開
 @ 文字列からハッシュ値を計算する機能をつけた。
 * 小さいサイズのファイルが大量にある場合の算出処理効率化。

Ver.3.14 - 未公開
 * 選択ファイル数などの計算とインクリメンタルサーチ実行のタイミングを変更。

Ver.3.13
 @ 除外フィルタ機能を追加。
   ( Hidden(File), System(File), ReparsePoint(Dir), ReparsePoint(File) )
 * リストビューへのファイル登録処理の高速化。
 * いくつかのエディットボックスとコンボボックスで、フォーカスを失った場合でも選
   択範囲を強調表示するようにした。
 * ハッシュ未算出の場合、 "HashFile を保存" と "File Integrity Verifier を作成"
   メニューが無効になるようにした。
 * 全コンボボックスの高さ調整。
 * インクリメンタルサーチ中でもファイル登録できるようにした。
   (インクリメンタルサーチは解除される)
 * リストビューでのソート時、カラムヘッダにソート記号を表示するようにした。
   (Comctl32.dll version 6.0 以降)
 * リストビューでのソート時、ソート対象カラムの背景色を変更するようにした。
   (Comctl32.dll version 6.0 以降)

Ver.3.12
 @ High DPI に対応。
 @ 拙作ソフトウェアの MakeFileVerifier との連携機能をつけた。
   また、 MakeFileVerifier を同梱するようにした。
 + キーバインド追加。(SHIFT + ENTER : ファイルを開く, F2 : リネーム, F3 : 検索)
 + ハッシュファイル読み込み時の対応文字コードの強化。(UTF-16BE など)
 + ベンチマーク機能でセルフテストと速度測定処理を分離。
   測定時間の指定とセルフテストを実施するかの選択ができるようにした。
 * ハッシュ計算を全体的に高速化 & 効率化。
 * Windows Server 2008 R2 or Windows 7 以降でファイル列挙高速化。
 * リストビューへのファイル登録処理の高速化。
 * ハッシュファイル読み込み処理の高速化。
 * クリップボードとのハッシュ比較機能の高速化 & 高精度化。
 * Ctrl+V などでクリップボード内のハッシュを入力する場合、従来はクリップボード
   内で最初に発見したハッシュを切り出していたが、できるだけ桁数の大きい16進数を
   ハッシュとして切り出すようにした。
 * 一部描画処理を GDI+ で描画するように書き直し。
 * ソフト初回起動時、exeファイルと同じディレクトリに対する書き込み権限がない場
   合は、 %APPDATA%\HashSum に設定ファイルを保存するようにした。
   リードオンリーな場所にインストールする場合で、かつ、 %APPDATA%\HashSum に設
   定を保存したくない場合は、一度書き込み権限のあるディレクトリでソフトを起動し
   iniファイルを作った後、そのiniファイルごと移動させてください。
   iniファイルがありさえすれば、権限の有無に関わらずそのファイルを使用します。
   (ただし、書き込み権限がなければ当然設定は保存されません)
 * x64 版と挙動を合わせるため、 x86 版の manifest 変更。
 * 自動処理開始と自動終了が有効、かつ、ファイル登録数が 0 ならソフトを終了する
   ようにした。(-as, -ae オプションでも同様)
 * オーナーウィンドウが最小化されている場合は、メッセージボックスをフックせず、
   位置制御しないようにした。
 * 不正なハッシュファイルの検出強化。
 * リストビューでダブルクリック時、何も選択されていなければ無視するようにした。
 * マクロ挿入ボタンでマクロを挿入した場合、キャレット位置を変更するようにした。
 / リファクタリング。

Ver.3.11
・シェル拡張に、「"すべてのハッシュ"形式で Clipboard にコピー」, 
 「HashFileを作成」メニューを追加。(DLL Ver.1.08)
 (HashFile はカレントディレクトリに作成)
・既存 HashFile 存在時の追記/上書き確認時に該当ファイル名を表示するようにした。
・未対応形式の場合でも、クリップボード監視機能が無効ならその内容をクリップボー
 ドにセットしないようにした。
・不正な GNU 形式ハッシュファイルの検出強化。
・-SC オプション使用時、 -hf/-HF で CRC16 を指定していた場合、クリップボードに
 「すべてのハッシュ」形式で出力していた問題を修正。
・コマンドラインオプションに -rn, -et, -of, -oc, -on, -ob, -OB, -oa, -OA, -r, 
 -R, -ah, -sa, -SA, を追加。
・「設定」に、サブディレクトリを含めないオプション追加。
・「設定」に、Bytes単位で表示する時桁区切りするオプション追加。
 (桁区切り記号などは、ユーザ指定[地域と言語のオプション]の設定に従う)
・openssl-1.0.1-stable-SNAP-20120103 から OpenSSL 1.0.1 へバージョンアップ。

Ver.3.10
・ハッシュファイル読み込み時の対応文字コードの強化。(EUC-JP など)
・オンラインスキャン機能で VirusTotal の仕様変更に対応。
・ファイル操作機能(開く, プロパティ)時の内部処理の変更。
・HashFile保存時のパスでファイル名のみ入力した場合、相対パス出力を指定していて
 も、絶対パスで出力していた問題を修正。

Ver.3.09
・保存時のハッシュファイル書式のプリセットに Simple file verification (SFV) 
 形式 を追加。
 (既存の設定ファイルに勝手に追加したりはしませんので、各自追加するか、
  設定ファイルを削除して設定を初期化してください。)
・リネーム時に使用する書式設定のプリセットを1つ追加。
 (既存の設定ファイルに勝手に追加したりはしませんので、各自追加するか、
  設定ファイルを削除して設定を初期化してください。)
・オンラインスキャン機能の微修正。
・VirusTotal での Hash検索 機能で、 VirusTotal が対応しているハッシュを自動選択
 することによって、ユーザがメニューからハッシュを指定する必要をなくした。
・VirusTotal での Hash検索 機能で VirusTotal API Key を不要にした。
・-hf, -HF オプションでハッシュを複数指定する場合、オプションを複数回使用するの
 ではなく、 , で区切って指定するよう変更。

Ver.3.08
・シェル拡張で、ドライブ選択時もメニューを表示するようにした。(DLL Ver.1.06)
・x64 版にも ShellExt_x86.exe, ShellExt_x86.dll を同梱することにした。
 (x64 OS 上で 32 bit のファイラを使用している場合用)
・リストビューで何も選択されていなければショートカットキーを無効に。
・「HashFileを開く」ダイアログで読み込み時、「自動で処理を開始する」オプション
 が働いていなかったので修正。
・-ow/-OW オプション単体指定時でもオプション解釈するよう修正。
・-HF オプション指定時のカラム変更処理の修正。
・-hf, -HF オプションで指定できる文字列の "CRC64-ECMA-R" を "CRC64" に変更。
・レイアウト微調整。

Ver.3.07
・VirusTotal Public API v2.0 に対応。それに伴い、アップロードできる最大サイズの
 デフォルトを 20MiB から 32MiB に引き上げ。
・コマンドラインオプションの -bg の挙動変更。ウィンドウを最小化するのみにした。
 従来のバックグラウンドモード(Low-Priority Mode + 最小化)にするには -BG と併
 用してください。
・前回ファイルへ保存した時の形式をiniに正しく保存できない場合があったので修正。
・「設定」に、HashList形式でクリップボードヘコピー時、フルパスでコピーするオプ
 ションを追加。設定なしならファイル名のみでコピー
・シェル拡張に、 "フルパス", "CRC32", "MD5", "SHA-1", "SHA-256", "SHA-512" を
 クリップボードにコピーする機能をつけた。複数可。("フルパス" は " で囲みませ
 ん。囲ったものが欲しい場合は、Windows Vista 以降ならShiftキーを押しながら右ク
 リックして "パスとしてコピー" でコピーできます。)(DLL Ver.1.05)

Ver.3.06
・CRC32 の高速化。
・多言語対応 (English)。(HashSum, ShellExt-Installer Ver.1.02, DLL Ver.1.03)
 日本語環境以外では自動的に英語表示になります。(管理上の理由から、日本語環境
 でも一部日本語は英語になります。)
・OpenSSL 1.0.0d から openssl-1.0.1-stable-SNAP-20120103 
 (OpenSSL 1.0.1-beta1 相当) へバージョンアップ。
 CPU (Sandy Bridge 以降) と OS (Windows 7 SP1 以降) が対応していれば SHA-1 
 算出に AVX を使うので高速です。
・リストビューでアイテムをダブルクリックすることで、「すべてのハッシュ」形式で
 ハッシュをクリップボードにコピーできるようにした。
 Shiftキーを押しながらダブルクリックで従来の動作。
・クリップボードヘコピー時、1アイテムしか選択していない場合は改行しないようにし
 た。
・HashList形式でクリップボードヘコピー時、前回ファイルへ保存した時の形式を使用
 するようにした。
・ハッシュファイルが未対応形式であった場合、その内容をクリップボードにセットす
 ることによって、未対応形式でも比較できるようにした。クリップボードにセットす
 るだけなので、算出&比較するファイルは自分で登録する必要があります。(未対応
 ファイルが複数ある場合は最後のファイルの内容をクリップボードにセット)
・PGP署名の付いたGNU形式のハッシュファイル読み込みに対応。
 (PGP Signature 部は無視します)
・GNU形式のハッシュファイル読み込み時、行頭に # があればその行をコメント扱いす
 るようにした。(Fedora, Gentoo Linux などがISOイメージと共に配布している物)
・ハッシュファイル読み込み時、ファイル名が「CRC16-LSUMS」などだと、カラムに追加
 するハッシュを "CRC16-CCITT-R" と誤判定していたので修正。(Tiger2なども同様)
・「高度な設定」内「ハッシュファイル読み込み時の文字コードを固定する」の
  CodePage のデフォルト値はユーザ環境の CodePage を使用するようにした。
・オンラインスキャン機能の微修正。
・Shift + F10 でコンテキストメニューが表示されない問題を修正。
・置換書式に <NOWDATE>, <NOWTIME> を追加。
・コマンドラインオプションに -HF, -bg, -BG, -ae, -sc, -SC, -sp, -ow, -OW, 
 を追加。
・ファイル操作系のショートカットキーを増やした。
・コンテキストメニューに"選択の切り替え"をつけた。
・重複ファイル選択のためのメニューに "一番上のファイルを残す", 
 "一番下のファイルを残す" を追加。
・エンディアン変換機能の追加。(有効状態で終了しても次回起動時無効になります)
・登録時以外でも、コマンドラインでパスなしのファイル名のみが渡された場合は、
 カレントディレクトリからの相対パスとして処理するようにした。
・HashFile保存時の名前を付けて保存ダイアログで、デフォルトファイル名にパスを含
 めないようにした。
・HashFileの 保存 / 読み込み 時のエラー発生時、詳細なエラー理由も表示するように
 した。
・HashFile保存時、相対パスで保存する際の基点を指定できるようにした。
 (無記入の場合は、保存ファイルのパスを基点とします。)
・HashFileの 保存 / 読み込み 時のファイル名と検証フォルダの履歴を保存するように
 した。(Max = 10)
・OS が Windows Vista 以降ならば、フォルダ選択ダイアログに IFileOpenDialog を使
 用するようにした。
・その他

Ver.3.05
・推定残り時間は平均速度を使って推測するようにした。
・全ファイルのハッシュ算出時、既に算出済みやキャンセルしたファイルの分まで含め
 て全体の進捗状況を計算していたので、これを修正。

Ver.3.04 - 未公開
・メニューから Low-Priority 有効無効の一時的な変更ができるようにした。
 (ハッシュ算出中でも変更可)
・コンテキストメニューに重複ファイル選択のためのメニューをつけた。
・全体の進捗状況表示で推定残り時間も表示するようにした。(その瞬間の速度を使っ
 て推測しているので、厳密なものではなくあくまで目安です。)
・HashFile保存時のデフォルトファイル名を設定ファイルで変更できるようにした。
・HashFile保存時のデフォルトファイル名のディレクトリは、リストビューで選択中の
 ファイルのディレクトリになるようにした。
・置換書式に <DIRNAME> を追加。
・その他

Ver.3.03
・登録時、コマンドラインでパスなしのファイル名のみが渡された場合落ちていたが、
 ファイルはカレントディレクトリからの相対パスとして処理するようにした。
・算出エラー or 検証エラー があった場合、Windows 7 以降のタスクバーボタンでの
 プログレスバー表示で、エラー表示するようにした。
・ファイル操作時のフォルダ選択時、エディットボックスに存在しないフォルダのフル
 パスが入力された場合、そのフォルダを作成するようにした。
・lft形式 の読み込み時、正しく読めないファイルがある問題を修正。
・インクリメンタルサーチ機能で、サーチダイアログにフォーカスがなければ半透明に
 するようにした。
・いくつかの細細した修正。

Ver.3.02
・クリップボード監視&比較機能の追加。
・Valid カラムでのソート順の変更。(空欄のファイルを下へソート)
・Windows 7 以降のタスクバーボタンで、管理者特権でアプリケーションが実行される
 場合も考慮するようにした。
・ファイル読み込み / 算出 スレッド作成時の動作の変更。
・インクリメンタルサーチ機能のレスポンス向上。
・インクリメンタルサーチダイアログの検索ボタンは不要なので削除。
・「登録数」表示の幅を多少長くした。
・「ファイル操作」-「指定フォルダへコピー」機能をつけた。
・「ファイル操作」-「指定フォルダへ移動」後、元に戻すことができるようにした。
・ファイルサイズカラムは右寄せ表示するようにした。
・「算出時優先度」を「算出スレッドの優先度」へ文章変更。
 同時に、「リアルタイム」を削除し、「LOWEST」を追加。
・すべての算出処理キャンセル時、タイトルバーにその旨表示するようにした。
・ハッシュファイルが未対応形式であった場合、「登録エラーファイル一覧」でその
 旨表示するようにした。
・「FileSizeの単位を換算する」をデフォルトにした。
・その他

Ver.3.01
・ファイル個別の進捗状況表示処理の軽量化。
・一時停止時、タイトルバーでの全体の進捗状況表示を維持するようにした。
 また、「Pause」ボタンを「Resume」ボタンに変化させるようにした。
・すべての算出処理キャンセル時、正常にキャンセルできないことがある問題を修正。
 (Ver.3.00 でのエンバグ)
・軽くリファクタリング。

Ver.3.00
・リストビュー内のエラーメッセージは1行で出力するようにした。
・ShellExt_x86.exe / ShellExt_x64.exe で、 DLL の Architecture によって処理を切
 り替えるようにした。(x64 OS 上で 32 bit のファイラを使用している場合への対処)
 (ShellExt-Installer Ver.1.01)
・複数ドライブ同時算出できるようにした。
・1ドライブでの同時算出ファイル数を変更できるようにした。
・算出時処理の効率化。
・Windows 7 以降のタスクバーボタンでのプログレスバー表示に対応した。
・リネーム時、正規表現を使用できるようにした。
・ファイル個別の進捗状況を表示できるようにした。(Progress カラム)
・タイトルバーでは全体の進捗状況を表示するようにした。
・「設定」に、ファイル削除時ごみ箱を使用しない(=直接削除する)オプション追加。
・「設定」に、常に手前に表示オプション追加。
・ファイル選択時、選択数と合計ファイルサイズを表示するようにした。
・メッセージボックスをオーナーウィンドウの中央に表示するようにした。
・文字コードが明示的に指定されておらず自動判定する場合、BOMで判定失敗し、かつ、
 自動判定ができない環境の場合、メッセージボックスで通知するようにした。
・インクリメンタルサーチ機能で、検索対象を選択できるようにした。
・若干の UI 変更。
・その他

Ver.2.05 - 未公開
・「ファイル操作」-「指定フォルダへ移動」機能をつけた。
・ソート後にインクリメンタルサーチするとサーチ結果が正しくない問題を修正。
・登録するものがファイルであった場合、Startボタンが点滅する問題を修正。
・一部アクセスキーの変更
・コンテキストメニューの「選択ファイルの算出ハッシュ」-「HashList」-
 「すべてのハッシュ」での出力書式を変更。
・置換書式に <FILESIZEDOUBLE> を追加。
・インクリメンタルサーチ機能のフルパス検索時は、正規表現で検索するようにした。
・レスポンスファイルに対応した。(大量のファイルを本ソフトウェアに渡す場合用)
・シェル拡張で、大量のファイルを送る際のWindowsの制限を回避。(DLL Ver.1.02)

Ver.2.04
・MD5, SHA-1 の算出関数を OpenSSL のものに置き換え。(高速であったため)
・オンラインスキャン機能の Jotti's malware scan を廃止。(VirusTotal に一元化)
・VirusTotal 関連の機能は VirusTotal API を使用するようにした。(これに伴い、
 関連機能は VirusTotal API Key が必要になりました。)
・「高度な設定」の「ドライブに直接アクセスする」も、デフォルト値以外の場合のみ
 iniファイルに保存するようにした。
・ベンチマーク時のバッファサイズと測定サイズ変更。
・その他

Ver.2.03 - 未公開
・インクリメンタルサーチ機能の追加。
・「HashFileを開く」-[ファイルを開く]ダイアログボックスで複数選択可能にした。
・HashFile保存時の名前を付けて保存ダイアログで、無効な文字が入ったファイル名を
 有効とみなすようにした。(下記 <ALGORITHM> のため)
・HashFile保存時の名前を付けて保存ダイアログで、デフォルトファイル名を入力して
 おくようにした。(<ALGORITHM>SUMS)
・HashFile保存時、リストビューで選択アイテムがあれば、全選択しないようにした。
・起動処理の変更。
・コマンドラインオプションの as を使用した場合、「自動で処理を開始する」オプシ
 ョンを解除するのに2回クリックしなければならなくなっていた問題を修正。
・一度に約2000ファイル以上をドラッグ&ドロップした場合、登録処理が止まる問題を
 修正。
・ファイル名中に . が複数ある場合に、置換書式の <BASENAME> が正しく置換できてい
 なかった問題を修正。
・仮想リストビューの LVN_ODFINDITEM を処理するようにした。(ファイル名から検索
 します。)
・「高度な設定」のプライオリティと Low-Priority I/O も、デフォルト値以外の場合
 のみiniファイルに保存するようにした。
・前回終了時の画面解像度よりも現在の画面解像度が低い場合、ウィンドウの復元位置
 がおかしかった問題を修正。
・リネーム成功時、リストビュー内のファイル名もあわせて変更するようにした。
・その他

Ver.2.02
・Windows Vista 以降の Low-Priority I/O に対応した。
・一部環境でハッシュ値がリストビューに表示されないことがある問題を修正。
・シェル拡張で、ハッシュファイルの読み込みに対応した。(DLL Ver.1.01)
・保存時のハッシュファイル書式のプリセットに CSV 形式 を追加。
 (既存の設定ファイルに勝手に追加したりはしませんので、各自追加するか、
  設定ファイルを削除して設定を初期化してください。)
・オンラインスキャン機能の微修正。

Ver.2.01
・対応ハッシュ関数を1つ追加した。(HAS-160)
 45 + 1 = 全46種に対応。
・オンラインスキャン機能のIPv6対応。
・オンラインスキャン機能のアップロード時の filename をランダムにした。他。
・環境によって、「登録エラーファイル一覧」で、ハッシュファイルと
 登録エラーファイルの表示行が対応しない問題を修正。
・「登録エラーファイル一覧」で、エラーのあったハッシュファイルのファイル名も
 表示するようにした。
・環境によって、リストビューにファイルが登録されているとアプリケーションキーで
 コンテキストメニューが表示されない問題を修正。
・重複ファイル検出処理終了までウィンドウのタイトルバーを戻さないようにした。
・メモリ確保失敗時の挙動を変更。
・設定ファイルに互換性がないことを検出し、削除が選択され削除に失敗した場合、
 エラーメッセージを表示するようにした。
・その他

Ver.2.00
・マルチコア / メニーコア CPU などに最適化。
・オンラインスキャン機能の追加。

Ver.2.00beta3 - 未公開
・リストビューへのファイル登録処理の変更。
・コマンドラインオプションの as の挙動を変更。(as をつけて起動した場合、ソフト
 終了時まで「自動で処理を開始する」オプションが有効になります。)
・ハッシュ検証時、一致した場合は「OK」ではなく、一致したハッシュ関数名を表示す
 るようにした。

Ver.2.00beta - 未公開
・複数ハッシュの同時算出に対応した。(これによる記載していない諸々の変更あり)
・リストビューの表示項目(カラム)を自由に 表示/非表示 できるようにした。
・GNU 形式読み込み時、リストに記述されているファイル名の先頭が半角スペースだっ
 た場合、登録エラーとしていた問題を修正。
・ソートの高速化。
・リストビューへのファイル登録処理の高速化。
・クリップボードへコピーなどの処理高速化。
・リードエラー時の挙動を変更。
・VirusTotal への問い合わせを POST メソッドから GET メソッドへ変更。(URI変更)
 かつ、 URI をブラウザに投げ、HashSum 自体はネットにアクセスしないようにした。
・ベンチマーク実行時、ハッシュを正しく算出できているかセルフテストするようにし
 た。(正しければ 0, 問題があれば 0 以外を表示)
・HashFileを開く場合の文字コード自動判定時の判定精度を改善。
・設定ファイルに互換性がないことを検出した場合、確認後設定ファイルを削除するよ
 うにした。(削除しなかった場合はそのまま終了します。)
・同じ置換書式を複数回指定されている場合でもすべてを置換するようにした。
・指定可能な置換書式を増やした。
・ショートカットキーを増やした。
・リネーム機能と外部ツール連携機能の登録制限を撤廃。
・外部ツール連携機能でファイル名を一括で送るオプションをつけた。
・ini の書式関係は 00 からではなく、 01 から始まるようにした。
・算出エラー数を表示するようにした。
・重複ファイル検出機能をつけた。
・いくつかツールチップをつけた。
・保存時のハッシュファイル書式をカスタマイズ可能にした。
 デフォルトで GNU 形式 / BSD 形式 / OpenSSL 形式 を設定済み
・その他

Ver.1.00a - 未公開
・対応ハッシュ関数を3つ追加した。(CRC-64-ECMA-182, SHA-512/224, SHA-512/256)
 42 + 3 = 全45種に対応。
・x64 版も公開することにした。
・シェル拡張を同梱するようにした。(インストールすることで、エクスプローラの
 コンテキストメニューに項目が追加されます。「送る」では、大量のファイルを送る
 ことができませんが、シェル拡張ならば可能です。)
・「設定」に、ファイル登録後に自動で処理を開始するオプションを追加。
・「処理中のファイルをキャンセル」時、キャンセルしたことを示すメッセージを表示
 するようにした。他。
・「HashFileを開く」ダイアログで読み込む場合、文字コードが明示的に指定されてい
 れば、高度な設定での指定よりもそちらを優先するようにした。
・HashFileを開く場合の文字コード自動判定時の日本語判定精度を多少改善した。
・リストビューのソートアルゴリズムをクイックソートからマージソートへ変更。
・Winsock エラー時、エラーメッセージを表示するようにした。
・リネーム時に使用する書式設定を、複数の中から選択できるようにした。
 設定ファイル中の該当箇所が Ver.1.00 とは互換性がありませんので、各自修正する
 か、設定ファイルを削除して設定を初期化してください。
・設定ファイル中の置換文字列の変更。( <HASHTYPE> から <ALGORITHM> へ)
 設定ファイル中の該当箇所が Ver.1.00 とは互換性がありませんので、各自修正する
 か、設定ファイルを削除して設定を初期化してください。

Ver.1.00 - 2011-03-20
・初回公開。

********************************************************************************
QLOOK ANALYTICS