首頁 > 後端開發 > Golang > 主體

Golang Gorm Fiber / argon2.Config 未定義

王林
發布: 2024-02-12 21:10:08
轉載
1191 人瀏覽過

Golang Gorm Fiber / argon2.Config 未定义

php小編草在使用Golang Gorm Fiber和argon2.Config時,可能會遇到"未定義"的問題。這個問題主要是由於缺少相應的定義或配置所導致的。要解決這個問題,我們需要檢查相應的庫和配置是否已正確引入,並確保它們在程式碼中得到正確的使用和呼叫。透過仔細檢查和調試,我們可以解決這個問題,讓我們的程式碼能夠正常運作。

問題內容

我正在嘗試從 PHP 切換到 GO,但我陷入了困境,我請求您的幫助。

我正在嘗試使用 Argon2 建立密碼雜湊函數,但當我使用「argon2.Config{}」時,我不斷收到錯誤「未定義:argon2.Config」。我已經多次重新編譯該項目,但似乎找不到解決方案。我請求您協助解決此問題。

func hashPassword(password string) []byte {
    // Şifreleme parametreleri
    timeCost := 1                 // İşlem süresi
    memory := 64 * 1024           // // Bellek miktarı
    threads := 4                  //  İş parçacığı sayısı
    keyLength := 32               // Oluşturulacak hash uzunluğu
    salt := []byte("unique_salt") // Her kullanıcı için benzersiz

    // Argon2 işlemi için hasher oluştur
    hasher := argon2.Config{
        Time:    uint32(timeCost),
        Memory:  uint32(memory),
        Threads: uint8(threads),
        KeyLen:  uint32(keyLength),
    }

    // Şifreyi hashle
    hashedPassword := hasher.Hash(password, salt, nil)

    return hashedPassword
}
登入後複製

解決方法

如果您使用套件 "golang.org/x/crypto/argon2" 您可以使用 argon2.IDKey() 方法。這是一個工作範例:

func HashPassword(password string) (hashedPassword string) {

    const (
        timeCost  uint32 = 1         // İşlem süresi
        memory    uint32 = 64 * 1024 // // Bellek miktarı
        threads   uint8  = 4         //  İş parçacığı sayısı
        keyLength uint32 = 32        // Oluşturulacak hash uzunluğu
    )

    salt := []byte("unique_salt") // Her kullanıcı için benzersiz

    // generate hashedpassword
    hash := argon2.IDKey([]byte(password), salt, timeCost, memory, threads, keyLength)

    // Base64 encode the salt and hashed password.
    b64Salt := base64.RawStdEncoding.EncodeToString(salt)
    b64Hash := base64.RawStdEncoding.EncodeToString(hash)

    format := "$argon2id$v=%d$models=%d,t=%d,p=%d$%s$%s"

    // final password in recommended format
    hashedPassword = fmt.Sprintf(format, argon2.Version, memory, timeCost, threads, b64Salt, b64Hash)
    return hashedPassword
}
登入後複製

以上是Golang Gorm Fiber / argon2.Config 未定義的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:stackoverflow.com
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!