go で暗号化:SHA2 でチェックサムの計算と検証
はじめに
go の暗号化処理についてまとめます。
今回は SHA2 として crypto/sha256
, crypto/sha512
でチェックサムの計算と検証を行います。
crypto/sha256, crypto/sha512
サーバー証明書の署名として利用されることの多いハッシュアルゴリズムです。
go の標準パッケージに入っており、必要な関数がシンプルに定義されてます。
それぞれ sha256: 32byte, sha512: 64byte 長のチェックサムを生成できる。
package main import ( "crypto/sha256" "crypto/sha512" "fmt" ) func main() { msg := []byte("This is go-encryption sha2 example") checksum256 := sha256.Sum256(msg) fmt.Printf("SHA256 length: %d \n", len(checksum256)) // SHA256 length: 32 fmt.Printf("SHA256 checksum: %x\n", checksum256) // SHA256 checksum: fb25f4d320dde73fd698302599553ec262ec4c90756398363aaa4889080f18d6 checksum512 := sha512.Sum512(msg) fmt.Printf("SHA512 length: %d \n", len(checksum512)) // SHA512 length: 64 fmt.Printf("SHA512 checksum: %x\n", checksum512) // SHA512 checksum: 1d098a71d5d39ee63c01a39bc284e39a94b72648e63167d3efe40ccfaded0912a708dc61b823b40f7ccb8d92a32faef08882f0ddd2170cce88f7121c50dbe77a }
まとめ
SHA2 として crypto/sha256
, crypto/sha512
でチェックサムの計算を行いました。
"golang.org/x/crypto/sha3" として準標準パッケージでSHA3も提供されているようです。