editor php Baicao mungkin menghadapi masalah "tidak jelas" apabila menggunakan Golang Gorm Fiber dan argon2.Config. Masalah ini disebabkan terutamanya oleh kekurangan definisi atau konfigurasi yang sepadan. Untuk menyelesaikan masalah ini, kita perlu menyemak sama ada perpustakaan dan konfigurasi yang sepadan diperkenalkan dengan betul, dan memastikan ia digunakan dan dipanggil dengan betul dalam kod. Dengan pemeriksaan dan penyahpepijatan yang teliti, kami boleh menyelesaikan isu ini dan memastikan kod kami berjalan dengan betul.
Saya cuba menukar daripada PHP kepada GO tetapi saya buntu dan saya meminta bantuan anda.
Saya cuba mencipta fungsi cincang kriptografi menggunakan Argon2 tetapi saya terus mendapat ralat "Undefined: argon2.Config" apabila saya menggunakan "argon2.Config{}". Saya telah menyusun semula projek itu beberapa kali tetapi tidak dapat mencari penyelesaian. Saya meminta bantuan anda untuk menyelesaikan masalah ini.
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 }
jika anda menggunakan kaedah pakej "golang.org/x/crypto/argon2"
您可以使用 argon2.IDKey()
. Berikut ialah contoh yang berfungsi:
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 }
Atas ialah kandungan terperinci Golang Gorm Fiber/argon2.Config undefined. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!