*******************************************************************************
[ ソフト名 ] HashSum
[ バージョン ] Ver.3.12
[Architecture] x86 / x64
[CharacterSet] Unicode
[ 種別 ] フリーウェア
[ 対応OS ] Windows 2000/XP/Vista/7 以降
[必要ランタイム 等] Windows 2000 以前のみ Gdiplus.dll 。それ以外の OS では特になし
[ 動作確認 ] Windows 2000/XP/7
[ 開発者 ] 冬野 善文
[ Web Site ] http://hp.vector.co.jp/authors/VA052754/
[ メール ] WebSiteのトップページか、同梱版Readmeをご覧ください。
*******************************************************************************
■はじめに
ダウンロードしていただきありがとうございます。
HashSum は、 CRC16, CRC32, MD5, SHA1, SHA256, SHA512, 他, 多数(全46種)の
ハッシュ関数に対応した ハッシュ値 / チェックサム 算出ソフトウェアです。
ハッシュ値算出機能の他、
* GNU Coreutils (md5sum / sha1sum) 形式のハッシュファイル読み込み機能
(PGP 署名付きでも読み込み可)
* Fire File Copy (作者:kitt氏) などで出力される lft形式 の読み込み機能
* 重複, 非重複ファイル検出機能
* ファイル操作機能(開く, リネーム, 削除, コピー, 移動, 他)
* Web検索機能(VirusTotal, Google / Hash, ファイル名)
* オンラインスキャン機能(VirusTotal)
* 外部ツール連携機能
* リストのインクリメンタルサーチ機能
* クリップボード監視&比較機能
などを有しています。
算出したハッシュと、ハッシュファイルやクリップボードから入力したハッシュを比較
することも可能です。
リネーム、インクリメンタルサーチ機能では、正規表現も使用できます。
・その他の特徴
* Multilingualization (Unicode Support)
* Localization (English, Japanese)
* Windows Shell Extension (optional)
* Windows Vista 以降の Low-Priority I/O に対応
* 保存時のハッシュファイル書式は GNU / BSD / OpenSSL / SFV / CSV 形式に対応。
カスタマイズも可能
* マルチコア / メニーコア CPU などに最適化
ハッシュファイル(チェックサムファイル)は、複数の 文字コード/改行コード と、
相対パス/絶対パス に両対応しています。
・Ver.2.01 の対応ハッシュ関数(全46種)
(
CRC-16-CCITT (R, L), CRC-16-IBM (R), CRC32, CRC-64-ECMA-182 (R), Adler-32,
GOST, GOST (CryptoPro), MD2, MD4, MD5, SHA-1, SHA-224, SHA-256, SHA-384,
SHA-512/224, SHA-512/256, SHA-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 以降
■インストール
適当なフォルダに展開してください。
シェル拡張をインストールする場合は ShellExt_x86.exe / ShellExt_x64.exe を起動し
てインストールしてください。ただし、この場合はレジストリを使用します。
OS が 64 bit バージョンの Windows Server 2003 または Windows XP の場合で、
ShellExt_x64.exe が失敗する場合は、下記 URI の Hotfix をインストールしてくださ
い。
http://support.microsoft.com/kb/942589/
ソフト初回起動時、exeファイルと同じディレクトリに対する書き込み権限がない場合、
%APPDATA%\HashSum に設定ファイルを保存します。
リードオンリーな場所にインストールする場合で、かつ、 %APPDATA%\HashSum に設定を
保存したくない場合は、一度書き込み権限のあるディレクトリでソフトを起動しiniファ
イルを作った後、そのiniファイルごと移動してください。
iniファイルがありさえすれば、権限の有無に関わらずそのファイルを使用します。
(ただし、書き込み権限がなければ当然設定は保存されません)
■アンインストール
・設定はすべて exeファイル と同じディレクトリにiniファイルとして保存しています
ので、フォルダごと削除すれば完了です。
ただし、ソフト初回起動時、exeファイルと同じディレクトリに対する書き込み権限が
なかった場合は、 %APPDATA%\HashSum に設定が保存されています。
・レジストリは使用していません。
シェル拡張をインストールした場合は、 ShellExt_x86.exe / ShellExt_x64.exe を起動
してアンインストールしてください。
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 と表示し、その
ファイルの行の背景を赤色に変更し通知します。
「検証エラー数」では、その NG 数を確認できます。
ハッシュの入力は、ハッシュファイルの他、マウスのコンテキストメニューや、
Ctrl+V、Shiftキーを押しながらマウスのダブルクリックでもクリップボード内のハッ
シュを入力可能です。
クリップボード内にHASH以外の文字があった場合でも、ある程度は自動でハッシュのみ
切り出します。
「検証エラー数」は、ハッシュ算出対象ファイルの、ハッシュ算出前にハッシュが
入力されていた場合にのみ、処理終了後カウントするので、ハッシュ算出後にハッシュ
を入力してもカウントは変化しません。ハッシュ算出後にカウントさせたい場合は、
「Start」ボタンを押してください。
「算出エラー数」は、算出処理終了後にカウントします。
これには、算出処理をキャンセルしたファイルも含まれます。
・リストビューでアイテムをダブルクリックすることで、「すべてのハッシュ」形式で
ハッシュをクリップボードにコピーできます。
・「Start」ボタンについて
「Start」ボタンは、処理中は「Pause」ボタンに変化し、押すことによって、
一時停止ができます。もう一度押すと再開します。
ハッシュ算出後に押した場合、リスト中のハッシュが算出されていないファイルを検索
し、そのファイルのハッシュを算出します。
既にハッシュが算出されているファイルのハッシュをもう一度算出したい場合は、
コンテキストメニューから「再算出」を選択してください。
・ハッシュファイルの読み込みについて
ハッシュファイルはウィンドウ中の 「Start」 ボタンの横にある 「HashFile(L)」
の部分にドラッグ&ドロップすることで読み込ませることができます。(複数可)
これ以外の部分にドラッグ&ドロップした場合は、ハッシュを算出するべきファイル
とみなします。
デフォルトでは、文字コード等は自動判定、ハッシュファイルが相対パスだった場合
は、ハッシュファイルのあるディレクトリからの相対パスとして読み込みます。
ハッシュファイルのファイル名中にハッシュ関数名が入っていた場合、自動でそのハッ
シュの表示カラムを追加します。
ファイルが存在しないなどの理由でうまく登録できなかったファイルは、
「登録エラー数」ボタンをクリックすることで確認することができます。
もし、文字コードの問題などで、ハッシュファイルが正しく読み込めない場合は、
「HashFile(L)」ボタンを押すか、 Alt+L、またはメニューから 「HashFileを開く」
ダイアログを出して、文字コード等を明示的に指定可能です。
また、「高度な設定」内の「ハッシュファイル読み込み時の文字コードを固定する」に
チェックを入れて、エディットボックスにコードページを入力することで、文字コード
を固定することも可能です。入力するコードページは下記 URI を参照してください。
ちなみに、 Shift_JIS のコードページは 932 です。
http://msdn.microsoft.com/en-us/library/dd317756.aspx
ハッシュファイルが相対パスの時、ハッシュファイルのあるフォルダと、検証したい
ファイルのあるフォルダが異なる場合でも、「HashFileを開く」ダイアログ中の
「相対パス時の検証フォルダ」にフォルダを指定することにより検証可能です。
「相対パス時の検証フォルダ」にフォルダを指定しなかった場合は、ハッシュファイル
のあるディレクトリからの相対パスとして読み込みます。
lft形式の読み込みでは、タイムスタンプとファイルサイズは考慮しません。
・クリップボード監視&比較機能について
「設定」で 有効/無効 を切り替えることができます。
低スペックPCなら無効にしておくと多少動作が軽くなります。
リストビュー中の算出済みハッシュのいずれかがクリップボード中に存在した場合、
"!Clip<マッチしたハッシュ関数名>" を Valid カラムに表示し、マッチしたファイル
の行の背景を緑色に変更し通知します。
入力されたハッシュ(InputHash カラム)がある場合にはそちらが優先されます。
この機能では、ファイル名は無視され、純粋にハッシュ値でのみ比較します。
よって、ハッシュファイル中のファイル名を無視した検証や、
未対応形式のハッシュファイルとの検証がしたい場合は、
ハッシュファイルをメモ帳などのテキストエディタで開き、すべてクリップボードに
コピーすることで実現できます。(ハッシュファイルが複数あって開くのが面倒な場合
は、コマンドプロンプトで
type *md5* | clip
などとすると楽にコピーできます。この例では、カレントディレクトリのファイル名中
にmd5があるファイルの内容がクリップボードに入ります。「clip.exe」は、 Windows
Server 2003 以降には標準搭載されています。)
ハッシュファイル読み込み時に、ハッシュファイルが未対応形式であった場合は、
自動でその内容をクリップボードにセットします。(未対応ファイルが複数ある場合
は、最後のファイルの内容がクリップボードにセットされます。)
ファイル名中にハッシュ値が埋め込まれているファイルで、埋め込まれているハッシュ
値を用いた比較をしたい場合にもクリップボード比較機能が利用できます。
ファイル名のコピーは HashSum 本体の機能や同梱しているシェル拡張の機能を使うと楽
にコピーできます。
クリップボードに入れるハッシュ値は複数でも構いませんし、
クリップボードにコピーしたのがソフト起動前であっても、正しく比較します。
クリップボード中に文字列として扱えないデータが入った場合は、前回文字列として取
得できた内容を使用し比較します。
クリップボードにハッシュ値以外が入っていても構いませんが、ハッシュ値のみコピー
したほうが誤判定が少なくなります。
基本的にビット長が長いハッシュから比較していますが、それらでマッチしなかった場
合、CRCのようなビット長が短いものは誤判定する可能性があります。
(今時CRCを使うこともないと思うので、将来的にCRC系は除外するかもしれません)
・重複ファイル検出機能について
重複ファイルと判断するのは、ファイルサイズと、算出済みのすべてのハッシュが一致
した場合のみです。
ファイルサイズはリスト登録時のファイルサイズです。リスト登録後にファイルが変更
されハッシュが他と一致するようになった場合でも、登録時のファイルサイズが異なれ
ば重複とはみなしません。
算出済みのすべてのハッシュというのは、ハッシュ算出後カラムの表示設定を変更した
場合など、今現在リストビューに表示してはいないものの、メモリ上には保持している
ハッシュも含みます。
これをクリアしたい場合は、「すべて再算出」か「選択ファイルを再算出」することで
可能です。後者は選択ファイルのみクリアします。
(あるハッシュで一方は算出済みだが、もう一方は未算出の場合、不一致と判断します)
DuplicateFiles カラムでソートすると交互に色分けされるので見やすいかと思います。
コンテキストメニューに重複ファイル選択のためのメニューがあります。
"古いファイルを残す", "新しいファイルを残す" はファイルの更新日時で比較します。
等しい場合は、上の方にあるファイルが選択から外れます。
・メニューの「Hashの安全性」について
メニューの「Hashの安全性」をクリックすると、デフォルトでは Wikipedia を開きます
が、設定ファイル中の [General] セクションに SecurityHashPage キーを作成すること
によって、開くページを自由に変更可能です。
・Web検索(Hash / ファイル名)機能について
Web検索(Hash / ファイル名)機能では、デフォルトでは Google で検索しますが、
設定ファイル中の [General] セクションに SearchEngine キーを作成することによっ
て、 Google 以外にも変更可能です。検索クエリの箇所を %s にしてください。
・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=保存時に使用する書式
のように記入してください。 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>
<HASH>
<FILESIZE>
<FILESIZEDOUBLE>
<MODIFIEDDATE>
<MODIFIEDTIME>
<BR>
<NOWDATE>
<NOWTIME>
--------------
上から、
・拡張子を除いたファイル名
・ファイルの拡張子
・ファイルのフルパス
・ファイルのあるディレクトリまでのパス
・ファイルのあるディレクトリ名(ディレクトリがなければ空文字列)
・ハッシュ関数名
・算出したハッシュ値(設定の大文字小文字の影響を受ける)
・ファイルサイズ(設定の 単位換算, 桁区切り の影響を受ける)
・単位換算したサイズとバイト単位の2つのファイルサイズ
(設定の桁区切りの影響を受ける)
・ファイルの更新日(ユーザ指定[地域と言語のオプション]の日付フォーマット)
・ファイルの更新時刻(ユーザ指定[地域と言語のオプション]の時刻フォーマット)
・改行(改行コードは設定などにより自動決定)
・現在日(YYYYMMDD)
・現在時刻(hhmmss)
に置換されます。
・ファイル操作機能(削除)について
この操作は、 Windows Vista 以降であれば、エクスプローラの[編集]-[元に戻す]
で元に戻すことができます。(ごみ箱を使用する設定で完全に削除していない場合のみ)
・ファイル操作機能(コピー / 移動)について
この操作は、 Windows Vista 以降であれば、エクスプローラの[編集]-[元に戻す]
で元に戻すことができます。
・インクリメンタルサーチ機能について
F3, Alt+S またはメニューから 「Search」をクリックすることでダイアログが出ます。
「F」 / 「H」ボタンで、検索対象を フルパス / ハッシュ値 で選択できます。
入力した文字列が、リスト中の フルパス、算出したハッシュ値 の中にあれば、それを
リストアップし、入力するたびに絞り込んでいきます。
この際、 「登録数」 = マッチ数 になります。「エラー数」は変化しません。
フルパス検索時は、正規表現として検索し、
ハッシュ値検索時は、ただの文字列として検索します。
この際、大文字小文字は区別しません。
ハッシュ値検索時の検索をワイルドカードで表現すると、
*入力した文字列*
で検索処理しているようなものです。
また、インクリメンタルサーチ中にリストから項目を削除した場合でも、新たに検索語
を入力するか、ダイアログを閉じると、削除処理はなかったことになります。
インクリメンタルサーチ中はファイル登録処理は無効になります。
・コマンドラインオプション
Usage: HashSum.exe [OPTION]... [FILE / DIR]...
Options:
-as
起動後に自動で処理を開始する (autostart)
-ae
算出後自動終了。動的変更からも変更可能。 (autoexit)
-r
ファイル登録時、サブディレクトリを含める。 -R と排他
これを使用する場合は、[FILE / DIR]... よりも先に指定してください。
-R
ファイル登録時、サブディレクトリを含めない以外 -r と同じ
-hf algorithm[,algorithm...]
指定したハッシュ関数アルゴリズムをカラムに追加 (hashfunction)
-HF algorithm[,algorithm...]
指定したハッシュ関数アルゴリズムのみカラムに表示 (HASHFUNCTION)
-lh file
読み込むハッシュファイルのパス (loadhash)
-rf file
ハッシュを算出するファイルのレスポンスファイルのパス
-rh file
ハッシュファイルのレスポンスファイルのパス
-sp file
算出後自動保存するパス。ファイル名のみ指定した場合カレントディレクトリに
保存。保存形式などは前回保存時の設定を使用。置換書式使用可。
-ow
ファイルに出力する際、既存ファイルがあれば上書き。 -OW と排他
-OW
既存ファイルがあれば追記する以外 -ow と同じ
-sc
算出後ハッシュのみクリップボードヘ出力。 (SaveToClipboard)
-hf あるいは -HF オプションで出力ハッシュを指定する。 -hf/-HF で複数指定
した場合、指定内の下記文字列一覧中の下の方にあるハッシュが有効となる。
-SC
HashList形式でクリップボードヘ出力し、 -hf/-HF で出力ハッシュを指定しな
ければ、「すべてのハッシュ」形式で出力する以外 -sc と同じ
-ah
-SC オプションと併用前提。 -SC 以外の -hf/-HF 利用オプションと併用不可。
-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 に影響。
-bg
ウィンドウを最小化。
これを使用する場合は、コマンドラインオプションの最初で指定してください。
-BG と併用で、バックグラウンドモード(Low-Priority Mode + 最小化)。
-BG
Low-Priority Mode で起動。動的変更からも変更可能。
-rn n
算出後リネーム。リネーム書式は 1~3 を指定してください。範囲外の値を指定
した場合、下位 2 bit が使用されます。 -hf/-HF で使用ハッシュを指定。
-et n
算出後外部ツールを使用。使用する外部ツールを 1~3 で指定してください。
範囲外の値を指定した場合、下位 2 bit が使用されます。
-hf/-HF で使用ハッシュを指定。
コマンドの初めは `-' で記述していますが、 `/' でも構いません。
各オプションは基本的に複数回使用可能です。複数使用できないものは最後に指定した
ものが有効となります。
-of, -oc, -on, -ob, -OB, -oa, -OA は、iniがリードオンリー属性時無効になります。
設定の動的変更と -as, -r, -R, -sa, -SA は、オプション使用時のみ有効であり、設定
ファイルに保存されません。
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
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 はお好みで `-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
--- 応用 ---
* 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
CRC64
Adler32
GOST
GOSTPRO
MD2
MD4
MD5
SHA1
SHA224
SHA256
SHA384
SHA512_224
SHA512_256
SHA512
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
--------------
・ベンチマーク機能について
ベンチマークは、0番目の CPU / コア でのみ動作させています。よって、
その CPU / コア の使用率が高ければ、正確な数値は出ません。
また、小数点以下は切り捨てています。
ベンチマーク実行時、ハッシュを正しく算出できているかセルフテストし、正しければ
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 であることに注意
してください。また、これはスレッド数の制限にも影響します。
・Tips
* 「高度な設定」内の「バッファサイズ」、「最大I/O単位」は、ある程度スペックの
あるPCであれば、
バッファサイズ : 64
最大I/O単位 : 8192
ドライブに直接アクセスする : チェックあり
以上にするのがおすすめです。
初期値は、低スペックPCでも動作する(であろう)値にしてあるので、遅いです。
算出するファイルサイズが大きければ、「ドライブに直接アクセスする」にチェックを
入れると、動作が軽くなるかもしれません。(最大I/O単位を大きな値にする場合は
チェックありを推奨します。)
SSDなどの高速なドライブで、かつ、メモリ(ユーザ空間)に余裕があれば、もっと増や
してもいいかもしれません。しかし、増やしすぎると逆に遅くなる可能性があるので、
PCスペックにあわせて適宜変更してください。
バイト単位でどちらも 2の冪乗 であり、かつ、「バッファサイズ」は「最大I/O単位」
で割り切れ、商が1より大きくなるようにしてください。
よくわからなければ、どちらも絶対に変更しないでください。
あまり変な値でなければ条件を満たさずとも動きはするでしょうが、効率が悪いです。
* 処理が重い場合は「高度な設定」内の「算出スレッドの優先度」を 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
・仕様
* ハッシュ算出中に算出対象ファイルをリストから削除した場合、全体の進捗状況表示
からその分が引かれない。
* ファイルサイズカラムを左端にした場合、左寄せ表示になる。(Windowsの仕様)
* 外部ツールで長いコマンドラインを渡せない。(Windowsの仕様)
・対応ハッシュ関数について補足
* CRC16-CCITT-R
通常、ファイルと一緒に表示されている CRC16 はこれです。
* CRC16-IBM-R
LHA(LZH) 形式などで利用されている CRC16。
* CRC64-ECMA-R
xz 形式などで利用されている CRC64。
・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
■著作権・使用条件・免責など
・本ソフトウェア、および同梱配布物の著作権は、謝辞記載の著作物を除き、作者であ
る 冬野 善文 が保有しています。
・作者の許可なく、転載、再配布を行うことを禁止します。
雑誌・書籍などの有形物へ紹介記事などを掲載する場合、あるいはCD-ROMなどに収録
する場合は、必ずご一報ください。
・転載・再配布時は、書庫ファイル名及び格納ファイルを改変することを禁止します。
・本ソフトウェアの全部または一部を修正、改変、逆コンパイル、逆アセンブル、
またはその他のリバースエンジニアリング行為などを禁止します。
・本ソフトウェアの仕様やドキュメントの内容などは、予告なく変更・廃止することが
あります。
・本ソフトウェアを使用して発生したいかなる損害にも、作者は責任を負いません。
また、作者はバージョンアップやサポートなど、一切義務を負わないものとします。
■謝辞
・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).
MD5, SHA-1 の計算に使用させていただいております。
OpenSSL に関しては、docフォルダ内のドキュメントをご覧ください。
有用なツールを提供していただき、大変感謝しております。
この場を借りて御礼申し上げます。
■ChangeLog (@:NEW +:EXPANSION *:CHANGE -:FIX [Ver.3.12 or later])
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
・初回公開。
*******************************************************************************