Bagaimana untuk Mencapai Kefungsian crypt() PHP dengan Blowfish di Golang?

Susan Sarandon
Lepaskan: 2024-10-28 06:32:02
asal
388 orang telah melayarinya

How to Achieve the Functionality of PHP's crypt() with Blowfish in Golang?

Golang Equivalent of PHP's crypt() Function with Support for Blowfish

PHP's crypt() function menawarkan pelbagai kaedah pencincangan, termasuk blowfish. Percubaan untuk meniru kelakuannya di Golang telah terbukti mencabar kerana ketiadaan padanan langsung.

Penyelesaian Alternatif

Walaupun kekurangan crypt() Golang yang setara , alternatif yang berkesan tersedia menggunakan pakej golang.org/x/crypto/bcrypt. Coretan kod berikut memberikan contoh:

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

// Check whether the bcrypt version of "enter-new-password" matches "a$f5561d2634fb28a969f2dO8QeQ70f4bjCnF/.GvPpjj.8jgmtzZP2".
check := bcrypt.CompareHashAndPassword([]byte("a$f5561d2634fb28a969f2dO8QeQ70f4bjCnF/.GvPpjj.8jgmtzZP2"), []byte("enter-new-password"))
log.Println(check)</code>
Salin selepas log masuk

Jika cincangan bcrypt bagi "masukkan-kata laluan baharu" sepadan dengan cincang yang disediakan, semak akan menjadi sifar. Jika tidak, semakan akan ditetapkan kepada objek ralat.

Pertimbangan

Fungsi crypt() PHP menyokong pelbagai algoritma pencincangan, seperti sha256, sha512 dan blowfish. Di Golang, adalah perlu untuk menyatakan secara eksplisit jenis cincang, kos dan parameter lain.

Awalan $2a$ dalam cincang yang disediakan mencadangkan penggunaan algoritma berasaskan blowfish. Beberapa percubaan awal untuk penyelesaian tidak mengambil kira perkara ini, yang membawa kepada keputusan yang salah.

Fail golang.org/x/crypto/bcrypt/bcrypt_test.go menawarkan contoh tambahan tentang cara memanfaatkan pakej ini dengan berkesan.

Atas ialah kandungan terperinci Bagaimana untuk Mencapai Kefungsian crypt() PHP dengan Blowfish di Golang?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!