Работа с Bcrypt в Golang: методы и примеры кода

bcrypt — это алгоритм хеширования паролей, обычно используемый в языках программирования, включая Go (Golang). Вот несколько методов Go для работы с bcrypt, а также примеры кода:

  1. Создание хеша Bcrypt:

    import (
    "fmt"
    "golang.org/x/crypto/bcrypt"
    )
    func main() {
    password := "myPassword123"
    hash, err := bcrypt.GenerateFromPassword([]byte(password), bcrypt.DefaultCost)
    if err != nil {
        fmt.Println("Error generating bcrypt hash:", err)
        return
    }
    fmt.Println("Bcrypt hash:", string(hash))
    }
  2. Сравнение пароля с хешем Bcrypt:

    import (
    "fmt"
    "golang.org/x/crypto/bcrypt"
    )
    func main() {
    password := "myPassword123"
    hashedPassword := "$2a$10$GutbgLdXvJ/1Xl/.jE/0tOJxv0WZyY0mCGoMagvut8C4Wjzmlv1L."
    err := bcrypt.CompareHashAndPassword([]byte(hashedPassword), []byte(password))
    if err != nil {
        fmt.Println("Invalid password:", err)
        return
    }
    fmt.Println("Password is valid!")
    }

В этих примерах показано создание хеша bcrypt из простого текстового пароля с помощью bcrypt.GenerateFromPasswordи сравнение пароля с хешем bcrypt с помощью bcrypt.CompareHashAndPassword.