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
- アラン・ドノバン (著), ブライアン・カーニハン (著), 柴田芳樹 (著)
- 丸善出版 2016-06-20 (Release 2021-07-13)
- Kindle版
- B099928SJD (ASIN)
- 評価
Kindle 版出た! 一部内容が古びてしまったが,この本は Go 言語の教科書と言ってもいいだろう。感想はこちら。
-
SHA-3 は標準パッケージにないので今回は見送った。ちなみに
golang.org/x/crypto/sha3
パッケージを使えば SHA-3 アルゴリズムも簡単に組み込める。 ↩︎