L'éditeur php Baicao peut rencontrer des problèmes "indéfinis" lors de l'utilisation de Golang Gorm Fiber et argon2.Config. Ce problème est principalement dû au manque de définition ou de configuration correspondante. Pour résoudre ce problème, nous devons vérifier si les bibliothèques et configurations correspondantes sont introduites correctement et nous assurer qu'elles sont utilisées et appelées correctement dans le code. Avec une inspection et un débogage minutieux, nous pouvons résoudre ce problème et faire fonctionner notre code correctement.
J'essaie de passer de PHP à GO mais je suis bloqué et je demande votre aide.
J'essaie de créer une fonction de hachage cryptographique à l'aide d'Argon2 mais j'obtiens toujours l'erreur « Non défini : argon2.Config » lorsque j'utilise « argon2.Config{} ». J'ai recompilé le projet plusieurs fois mais je n'arrive pas à trouver de solution. Je sollicite votre aide pour résoudre ce problème.
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 }
si vous utilisez la méthode package "golang.org/x/crypto/argon2"
您可以使用 argon2.IDKey()
. Voici un exemple fonctionnel :
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 }
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!