Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Bagaimanakah Bcrypt Mengesahkan Kata Laluan Hashed dengan Garam Rawak?

Bagaimanakah Bcrypt Mengesahkan Kata Laluan Hashed dengan Garam Rawak?

Barbara Streisand
Barbara Streisandasal
2024-10-20 17:08:29472semak imbas

How Does Bcrypt Verify Hashed Passwords with Random Salts?

Memahami Bcrypt dan Garam Dijana Secara Rawak

Bcrypt, algoritma standard industri untuk mencincang kata laluan dengan selamat, menggunakan garam rawak untuk meningkatkan perlindungan kata laluan . Walau bagaimanapun, pengguna mungkin tertanya-tanya bagaimana proses pengesahan berfungsi semasa mengambil kira elemen yang kelihatan rawak ini.

Peranan Garam

Garam berfungsi sebagai awalan unik yang ditambahkan pada kata laluan sebelum pencincangan. Nilai rawak ini memastikan bahawa setiap kata laluan menghasilkan cincang yang berbeza walaupun sama. Dengan menggunakan garam yang tidak dapat diramalkan, penyerang tidak boleh membuat prakiraan cincang kata laluan, menjadikannya lebih sukar untuk menjejaskan akaun pengguna.

Struktur Kata Laluan Dicincang

Sementara garam dijana secara rawak , ia disertakan dalam kata laluan cincang yang terhasil. Kata laluan cincang terdiri daripada beberapa bahagian, termasuk:

  • Jenis algoritma (dalam kes ini, bcrypt)
  • Parameter kos (menentukan intensiti pengiraan pencincangan)
  • Rawak garam
  • Kata laluan dicincang

Proses Pengesahan

Apabila mengesahkan kata laluan, kata laluan yang dicincang diberikan kepada algoritma bcrypt. Algoritma mengekstrak bahagian garam dan menggunakannya untuk mencincang kata laluan yang disediakan.

Proses ini pada asasnya mencerminkan operasi pencincangan awal yang menjana kata laluan cincang. Jika cincang yang baru dijana sepadan dengan cincang yang disimpan, kata laluan yang disediakan disahkan sebagai betul.

Contoh

Pertimbangkan kata laluan cincang yang dijana untuk kata laluan "kata laluan":

y$abcdefg...123456789...
  • $2y menunjukkan algoritma bcrypt
  • 10 ialah parameter kos
  • abcdefg... ialah garam
  • 123456789... ialah kata laluan cincang

Untuk mengesahkan sama ada "kata laluan" adalah betul, perkara berikut digunakan:

crypt("password", "y$abcdefg...123456789...")

Hasil operasi ini akan sama dengan cincang yang dijana asal jika "kata laluan" adalah betul. Ini kerana garam terkandung dalam kata laluan cincang, membolehkan operasi pencincangan asal dibuat semula.

Atas ialah kandungan terperinci Bagaimanakah Bcrypt Mengesahkan Kata Laluan Hashed dengan Garam Rawak?. 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