[Go 言語]パスワードをハッシュ化する

Go Blue Logo プログラミング

Go 言語 でのパスワードのハッシュ化の実装方法を説明していきます。

bcrypt パッケージのインポート

パスワードのハッシュ化をするために bcrypt パッケージをインポートする必要があります。

import "golang.org/x/crypto/bcrypt"

ハッシュ化(暗号化)

下記のように実装することで文字列をハッシュ化することができます。

import "golang.org/x/crypto/bcrypt"

s := "plain text"

hash, err := bcrypt.GenerateFromPassword([]byte(s), bcrypt.DefaultCost)

第一引数にハッシュ化する文字列をバイト配列にしたもの、第二引数には暗号化コストを「4〜31」で設定します。
ここで設定している「 bcrypt.DefaultCost 」の暗号化コストの値は「12」となっています。

ハッシュ値と通常文字列の比較

ハッシュ化(暗号化)した文字列と通常の文字列を比較し、一致しているか確認する場合は以下のように実装します。

import "golang.org/x/crypto/bcrypt"

hash := "hash text"
err := bcrypt.CompareHashAndPassword([]byte(hash), []byte("match text"))

ハッシュ値と文字列が一致した場合は nil が返却され、不一致の場合はエラーが返却されます。

最後に

ユーザのパスワードをハッシュ化し DB に保管する際などに利用できそうなので、実装方法を忘れないようにしたいですね。

コメント

モバイルバージョンを終了
タイトルとURLをコピーしました