GNKF: NKF ぽいなにか の v0.5.0 をリリースした
Go 言語における文字列処理の習作 gnkf の v0.5.0 をリリースした。
このバージョンでデータのハッシュ値を取得・検証する機能を追加した。
$ gnkf hash -h
Print or check hash value.
Support algorithm:
MD5, SHA-1, SHA-224, SHA-256, SHA-384, SHA-512, SHA-512/224, SHA-512/256
Usage:
gnkf hash [flags] [file]
Aliases:
hash, h
Flags:
-a, --algorithm string hash algorithm (default "SHA-256")
-c, --check don't fail or report status for missing files
-h, --help help for hash
--ignore-missing don't fail or report status for missing files (with check option)
--quiet don't print OK for each successfully verified file (with check option)
Global Flags:
--debug for debug
MD5, SHA-1, SHA-224, SHA-256, SHA-384, SHA-512, SHA-512/224, および SHA-512/256 各アルゴリズムに対応している1。 既定のアルゴリズムは SHA-256 で,それ以外を使う場合は
$ echo Hello World | gnkf h -a md5
e59ff97941044f85df5297e1c302d260 -
などとアルゴリズム名を指定する。
また,リリースファイルに対して gnkf_0.5.0_checksums.txt
のようなハッシュ値の情報があれば, -c
オプションを使って
$ curl -L https://github.com/spiegel-im-spiegel/gnkf/releases/download/v0.5.0/gnkf_0.5.0_checksums.txt -O
$ curl -L https://github.com/spiegel-im-spiegel/gnkf/releases/download/v0.5.0/gnkf_0.5.0_Linux_64bit.tar.gz -O
$ gnkf h --ignore-missing -c gnkf_0.5.0_checksums.txt
gnkf_0.5.0_Linux_64bit.tar.gz: OK
WARNING in 9 items: no such file or directory
といった感じにダウンロードしたファイルの検証を行うことができる。
まぁ Linux とかなら sha256sum
コマンド等を使えばいいのだけど, Windows 環境で互換性のあるコマンドが見当たらなかったので gnkf に組み込んでみたのだった。
以前に BASE64 符号化のサブコマンドを組み込んだことがあったので,これもありかなと(笑)
余談だが Go で MD5 や SHA-1 アルゴリズムを使うと gosec に叱られる。 これを回避するには G501 および G505 のワーニングを除外すればよい。
たとえば
$ golangci-lint run --enable gosec --exclude "G501|G505"
みたいな感じ。
ブックマーク
参考図書
- プログラミング言語Go (ADDISON-WESLEY PROFESSIONAL COMPUTING SERIES)
- Alan A.A. Donovan (著), Brian W. Kernighan (著), 柴田 芳樹 (翻訳)
- 丸善出版 2016-06-20
- 単行本(ソフトカバー)
- 4621300253 (ASIN), 9784621300251 (EAN), 4621300253 (ISBN), 9784621300251 (ISBN)
- 評価
著者のひとりは(あの「バイブル」とも呼ばれる)通称 “K&R” の K のほうである。この本は Go 言語の教科書と言ってもいいだろう。
-
SHA-3 は標準パッケージにないので今回は見送った。ちなみに
golang.org/x/crypto/sha3
パッケージを使えば SHA-3 アルゴリズムも簡単に組み込める。 ↩︎