プログラミング

[golang]パスワードをハッシュ化する

プログラミング
この記事は約2分で読めます。
スポンサーリンク

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

スポンサーリンク

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

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

import "golang.org/x/crypto/bcrypt"
bcrypt package - golang.org/x/crypto/bcrypt - Go Packages
Package bcrypt implements Provos and Mazières's bcrypt adaptive hashing algorithm.

ハッシュ化(暗号化)

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

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に保管する際などに利用できそうなので、実装方法を忘れないようにしたいですね。

スポンサーリンク
スポンサーリンク
スポンサーリンク
KoEをフォローする
CodeLab

コメント

タイトルとURLをコピーしました