Rumah > pembangunan bahagian belakang > Golang > Golang Gorm Fiber/argon2.Config undefined

Golang Gorm Fiber/argon2.Config undefined

王林
Lepaskan: 2024-02-12 21:10:08
ke hadapan
1202 orang telah melayarinya

Golang Gorm Fiber / argon2.Config 未定义

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.

Kandungan soalan

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
}
Salin selepas log masuk

Penyelesaian

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
}
Salin selepas log masuk

Atas ialah kandungan terperinci Golang Gorm Fiber/argon2.Config undefined. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:stackoverflow.com
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan