Cryptology Academy · Pelajaran

bcrypt: Algoritma & Faktor Kos

Pelajari dalaman bcrypt, faktor kerja dan penalaan kos yang betul.

Pelajaran 2 daripada 413 langkah

bcrypt: Algoritma & Faktor Kos ialah pelajaran Cryptology Academy percuma di CoddyKit. Ini ialah pelajaran 2 daripada 4. Anda boleh membaca keseluruhan pelajaran di bawah secara percuma — kemudian berlatih secara praktikal dalam pelayar menggunakan penyunting kod terbina dalam dan tutor kecerdasan buatan 24/7. Pelajaran ini merupakan sebahagian daripada laluan pembelajaran Cryptology Academy, dan kemajuan anda disegerakkan merentas web serta aplikasi CoddyKit. Kursus Cryptology Academy merangkumi sejumlah 4 pelajaran.

Selamat Datang

bcrypt ialah algoritma pencincangan kata laluan yang direka pada 1999 khusus untuk menjadi perlahan dan tahan terhadap serangan perkakasan. Ia kekal sebagai algoritma pencincangan kata laluan yang paling banyak digunakan.

Asal Usul bcrypt

Direka oleh Niels Provos dan David Mazières berdasarkan sifir Blowfish. Huruf 'b' bermaksud Blowfish. Wawasan utamanya ialah menggunakan persediaan kunci Blowfish yang mahal untuk memperlahankan proses dengan sengaja.

Format Cincangan bcrypt

$2b$12$saltsaltsaltsaltsaltsalthashhashhashhashhashhash $2b$: versi algoritma 12: faktor kos (log2 bagi lelaran) salt: 22 aksara base64 (16 bait) hash: 31 aksara base64 (24 bait)

Faktor Kos

Kos 12 = 2^12 = 4096 lelaran. Kos 13 = 8192 lelaran. Setiap peningkatan menggandakan masa pengiraan. Laraskan supaya pencincangan mengambil masa kira-kira 100–300 milisaat pada perkakasan anda. Kelajuan penyerang meningkat dengan cara yang sama.

bcrypt dalam Python

import bcrypt password = b'my_password' salt = bcrypt.gensalt(rounds=12) # generates random salt hashed = bcrypt.hashpw(password, salt) # Verify: bcrypt.checkpw(password, hashed) # True

Garam Terbina Dalam

bcrypt sentiasa menjana dan menyimpan garam secara automatik. gensalt() menghasilkan garam rawak 16 bait yang selamat dari segi kriptografi. Anda tidak perlu mengurus garam secara berasingan — garam tersebut dibenamkan dalam rentetan cincangan.

Had 72 Aksara bcrypt

bcrypt memendekkan masukan pada 72 bait. Kata laluan yang melebihi 72 aksara dianggap sama selepas 72 bait pertama. Penyelesaian: lakukan pencincangan awal dengan SHA-512 sebelum bcrypt (tetapi sahkan pendekatan ini).

Aliran Pengesahan Kata Laluan

Log masuk: 1. Pengguna menghantar kata laluan 2. Dapatkan cincangan yang disimpan daripada pangkalan data 3. bcrypt.checkpw(submitted, stored_hash) 4. checkpw mengekstrak salt daripada cincangan yang disimpan dan mengira semula 5. Mengembalikan True/False Jangan sekali-kali menyimpan kata laluan mentah.

Penanda Aras

kos bcrypt 12: - CPU pengguna: ~150ms bagi setiap cincangan - GPU (RTX 4090): ~50,000 cincangan/s (berbanding 10B bagi SHA-256) Kelebihan penyerang berkurang daripada 1 bilion kepada ~300 dengan kos bcrypt 12.

Cadangan Faktor Kos

OWASP 2024: faktor kos bcrypt ≥ 10. Disyorkan: 12. Semak setiap tahun — apabila perkakasan bertambah baik, tingkatkan faktor tersebut. Laksanakan pencincangan semula dalam talian: semasa log masuk, semak dan naik taraf jika perlu.

Batasan bcrypt

Kelemahan bcrypt: tidak memerlukan banyak memori. Penyerang boleh menggunakan ASIC tersuai yang dioptimumkan untuk bcrypt. Untuk aplikasi baharu, utamakan Argon2id kerana ia memerlukan banyak memori dan tahan terhadap ASIC.

Semakan Ringkas

Apakah maksud faktor kos 12 dalam cincangan bcrypt?

Ringkasan

bcrypt kukuh tetapi tidak memerlukan banyak memori. Seterusnya kita mengkaji Argon2 — peneraju moden dalam pencincangan kata laluan dengan keperluan memori yang boleh dikonfigurasikan.
Percuma untuk bermula

Pelajari Cryptology Academy dengan tutor kecerdasan buatan — percuma

Tulis dan jalankan kod sebenar dalam pelayar anda, dapatkan bantuan segera daripada tutor kecerdasan buatan yang tersedia 24/7, dan sambung semula dari tempat anda berhenti di web atau dalam aplikasi.

Kursus
67
Pelajaran
261

Soalan Lazim

Adakah pelajaran “bcrypt: Algoritma & Faktor Kos” percuma?

Ya — teks penuh “bcrypt: Algoritma & Faktor Kos” boleh dibaca secara percuma di web ini. Untuk berlatih secara interaktif menggunakan penyunting kod terbina dalam dan tutor kecerdasan buatan 24/7, serta membuka kunci baki kursus Cryptology Academy, tingkat taraf kepada CoddyKit PRO. Kursus Cryptology Academy merangkumi sejumlah 4 pelajaran.

Apakah yang akan saya pelajari dalam “bcrypt: Algoritma & Faktor Kos”?

Pelajari dalaman bcrypt, faktor kerja dan penalaan kos yang betul. Anda berlatih Cryptology Academy menggunakan kod praktikal yang dijalankan terus dalam pelayar, manakala tutor kecerdasan buatan 24/7 menjawab soalan anda semasa anda mengikuti pelajaran.

Adakah saya memerlukan pengalaman untuk memulakan Cryptology Academy?

Tiada pengalaman terdahulu diperlukan. Pembelajaran Cryptology Academy di CoddyKit disusun untuk pelajar daripada peringkat pemula hingga lanjutan, jadi anda boleh bermula di sini atau dari awal dan belajar mengikut kadar anda sendiri. Ini ialah pelajaran 2 daripada 4.

Berapa lamakah pelajaran “bcrypt: Algoritma & Faktor Kos” diambil?

Kebanyakan pelajaran CoddyKit mengambil masa kira-kira 5–10 minit. Setiap pelajaran ringkas dan interaktif, jadi anda boleh membuat kemajuan secara berterusan dan menyambung tepat dari tempat anda berhenti di web atau aplikasi.

Bolehkah saya menulis dan menjalankan kod dalam pelajaran Cryptology Academy ini?

Ya. Setiap pelajaran Cryptology Academy menyertakan penyunting kod terbina dalam, jadi anda boleh menulis dan menjalankan kod sebenar terus dalam pelayar serta menerima maklum balas kecerdasan buatan serta-merta — tanpa memerlukan persediaan setempat.

Semua pelajaran dalam kursus ini

  1. Mengapa SHA-256 Biasa Gagal untuk Kata Laluan
  2. bcrypt: Algoritma & Faktor Kos
  3. Argon2: Pencincangan Kata Laluan Sukar Memori
  4. PBKDF2 & Memilih Algoritma yang Tepat
← Kembali ke Cryptology Academy