モケラ

Tech Sheets

mokelab

Goで、bcryptを使ってパスワードが一致しているか検証する

最終更新日:2022-05-08

ここでハッシュ化したパスワードをデータベースに保存し、ログイン時に検証するといったユースケースは多いでしょう。ここでは検証方法を紹介します。

パスワードの検証を行うには、 CompareHashAndPassword を使用します。正しいパスワードの場合は nil が返されます。

import (
        "fmt"

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

func main() {
        hashedPassword := "$2a$10$LOzS79niq4E.hu8aib4GeuXVSII9OsYB.ReF/.BjqItfhaSnzWba6"
        inputPassword := "mypassword1234!"
        err := bcrypt.CompareHashAndPassword([]byte(hashedPassword),
                []byte(inputPassword))
        if err != nil {
                fmt.Printf("Wrong password: %!s(MISSING)", err)
                return
        }
        // やった、パスワードは正しかったようだ
}

一覧に戻る