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
}
// やった、パスワードは正しかったようだ
}