Rumah >pembangunan bahagian belakang >Golang >Bagaimana untuk Mencapai Pencincangan Kata Laluan dalam Golang Setara dengan Fungsi crypt() PHP?

Bagaimana untuk Mencapai Pencincangan Kata Laluan dalam Golang Setara dengan Fungsi crypt() PHP?

Linda Hamilton
Linda Hamiltonasal
2024-10-27 02:13:30755semak imbas

How to Achieve Password Hashing in Golang Equivalent to PHP's crypt() Function?

Golang Setara dengan Fungsi crypt() PHP

Fungsi crypt() PHP adalah serba boleh dalam keupayaannya untuk mencincang nilai menggunakan pelbagai algoritma, termasuk sha256, sha512 dan blowfish. Mencari kesetaraan Golang yang tepat mungkin mencabar kerana variasi ini.

Penyelesaian Alternatif menggunakan bcrypt

Walaupun kekurangan setara Golang yang tepat, bcrypt menawarkan alternatif yang boleh dipercayai untuk pencincangan kata laluan. Begini cara untuk mencapai kefungsian yang serupa:

<code class="go">import "golang.org/x/crypto/bcrypt"

// Determines if the bcrypt version of "enter-new-password" matches the provided hash
check := bcrypt.CompareHashAndPassword([]byte("a$f5561d2634fb28a969f2dO8QeQ70f4bjCnF/.GvPpjj.8jgmtzZP2"), []byte("enter-new-password"))

// Log the result
log.Println(check)</code>

Kod ini akan mengembalikan sifar jika versi bcrypt "masukkan-kata laluan baharu" sepadan dengan cincang yang disediakan dan objek ralat sebaliknya.

Pertimbangan:

  • Fungsi crypt() PHP menawarkan pelbagai algoritma pencincangan, manakala Golang memerlukan spesifikasi eksplisit jenis cincang dan kos.
  • Dalam contoh dengan syarat, cincang jenis blowfish diandaikan berdasarkan kehadiran awalan "$2a$" dalam nilai cincang.

Atas ialah kandungan terperinci Bagaimana untuk Mencapai Pencincangan Kata Laluan dalam Golang Setara dengan Fungsi crypt() PHP?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
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