Я пытаюсь разработать систему входа пользователя, для этого я тестирую функцию bcrypt в golang.Но я столкнулся с некоторой забавной ситуацией.
Мой учебный материал bcrypt взят из этого, код хорошо работает https://medium.com/@jcox250/password-hash-salt-using-golang-b041dc94cb72
Но когда я писал свой собственный код, он по-прежнему терпел неудачу в сравнении.
package main
import (
"log"
"golang.org/x/crypto/bcrypt"
)
func main() {
hash1, _ := bcrypt.GenerateFromPassword([]byte("123456"), bcrypt.MinCost)
hash2, _ := bcrypt.GenerateFromPassword([]byte("123456"), bcrypt.MinCost)
err := bcrypt.CompareHashAndPassword(hash1, hash2)
if err != nil {
log.Println(err)
} else {
log.Println("success")
}
}
Поскольку строка для хеширования - это та же самая "123456", я, кроме вывода моего кода, должен быть success
, но результат будет crypto/bcrypt: hashedPassword is not the hash of the given password
.
Может кто-нибудь объяснитьэто и направь меня.