【学習記録】Goでパスワード暗号化処理を追加

ユーザー登録用のテーブルに保存するパスワードを暗号化する処理が未実装だったので追加しました。
以下の記事を参考にさせてもらいました。

hodalog.com

コミットは以下になります。

github.com

新規作成したapi/common/hash.goでパスワード暗号化・復号化の処理を以下のように書いています。
復号化の処理はログイン時にユーザーが入力した平文のパスワードとDBに格納されている暗号化されたパスワードを比較するための関数です。

package common

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

// HashPassword パスワードを暗号化する
func HashPassword(rawPassword string) (string, error) {
    hashedPassword, err := bcrypt.GenerateFromPassword([]byte(rawPassword), bcrypt.DefaultCost)

    return string(hashedPassword), err
}

// VerifyPassword 暗号化されたパスワードとユーザーが入力したパスワードを比較する
func VerifyPassword(hashedPassword string, entryPassword string) error {
    // password := []byte(hashedPassword)
    err := bcrypt.CompareHashAndPassword([]byte(hashedPassword), []byte(entryPassword))
    return err
}

上記のコードで一通り想定通りに動作しました。