Golang Gorm Fiber/argon2.Config undefiniert

王林
Freigeben: 2024-02-12 21:10:08
nach vorne
1193 Leute haben es durchsucht

Golang Gorm Fiber / argon2.Config 未定义

php-Editor Baicao kann bei der Verwendung von Golang Gorm Fiber und argon2.Config auf „undefinierte“ Probleme stoßen. Dieses Problem wird hauptsächlich durch das Fehlen einer entsprechenden Definition oder Konfiguration verursacht. Um dieses Problem zu lösen, müssen wir prüfen, ob die entsprechenden Bibliotheken und Konfigurationen korrekt eingeführt werden und sicherstellen, dass sie im Code korrekt verwendet und aufgerufen werden. Durch sorgfältige Prüfung und Fehlerbehebung können wir dieses Problem beheben und dafür sorgen, dass unser Code ordnungsgemäß ausgeführt wird.

Frageninhalt

Ich versuche, von PHP auf GO umzusteigen, aber ich stecke nicht fest und bitte um Ihre Hilfe.

Ich versuche, eine kryptografische Hash-Funktion mit Argon2 zu erstellen, erhalte jedoch ständig die Fehlermeldung „Undefiniert: argon2.Config“, wenn ich „argon2.Config{}“ verwende. Ich habe das Projekt mehrmals neu kompiliert, kann aber anscheinend keine Lösung finden. Ich bitte um Ihre Hilfe bei der Lösung dieses Problems.

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
}
Nach dem Login kopieren

Workaround

wenn Sie die Paketmethode "golang.org/x/crypto/argon2" 您可以使用 argon2.IDKey() verwenden. Hier ist ein funktionierendes Beispiel:

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
}
Nach dem Login kopieren

Das obige ist der detaillierte Inhalt vonGolang Gorm Fiber/argon2.Config undefiniert. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:stackoverflow.com
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!