Penjana Bcrypt
Penjana Bcrypt ialah alat percuma yang menghasilkan cincangan kata laluan bcrypt daripada sebarang input rentetan untuk penyimpanan kata laluan yang selamat.
Apakah itu bcrypt, dan adakah ia masih selamat?
Bcrypt ialah algoritma pencincangan kata laluan yang masih boleh digunakan untuk menyimpan kata laluan jika dikonfigurasikan dengan kos yang sesuai, walaupun sistem lebih baharu sering mengutamakan Argon2id. Niels Provos dan David Mazières mereka bentuk bcrypt pada tahun 1999 dengan menggunakan proses penjadualan kunci sifer Blowfish supaya setiap cubaan meneka kata laluan sengaja memerlukan banyak sumber pengkomputeran.
Pencincangan ialah proses sehala. Oleh itu, aplikasi menyemak kata laluan dengan mencincang kata laluan calon menggunakan parameter yang disimpan, bukannya mendapatkan semula kata laluan asal. Tidak seperti algoritma kegunaan umum seperti SHA-3, bcrypt menghasilkan rekod berkod lengkap dengan panjang tetap yang mengandungi versi, kos, garam dan jumlah semaknya.
Rekod bcrypt standard mempunyai panjang 60 aksara ASCII. Jumlah semaknya mewakili 184 bit dan dipaparkan sebagai 31 aksara dalam pengekodan gaya Base64 milik bcrypt. Bcrypt tidak dianggap telah dipecahkan dari sudut kriptografi, tetapi ia mempunyai batasan disebabkan usianya: pelaksanaan tradisional memproses tidak lebih daripada 72 bait input. Argon2id turut menyediakan perlindungan berintensif memori yang tidak terdapat pada bcrypt.
Bagaimanakah cara menggunakan Penjana Bcrypt?
Masukkan rentetan yang hendak dicincang, jalankan penjana, kemudian salin nilai yang dipaparkan dalam medan hasil Hash Bcrypt. Simpan keseluruhan hasil, bukan hanya jumlah semak terakhir.
- Gunakan kata laluan atau rentetan ujian yang tepat, termasuk huruf besar dan kecil, ruang serta tanda baca.
- Jana hasil bcrypt.
- Salin kesemua 60 aksara, termasuk penanda versi dan kos pada permulaan rekod.
- Simpan hasil tersebut dalam lajur cincangan kata laluan pangkalan data anda.
- Semasa pengguna mendaftar masuk, gunakan fungsi pengesahan bcrypt pada platform anda. Jangan jana cincangan baharu lalu membandingkan teksnya secara langsung.
Bcrypt biasanya menggunakan garam rawak yang baharu bagi setiap cincangan. Oleh itu, mencincang input yang sama sebanyak dua kali boleh menghasilkan dua rekod berbeza, dan kedua-duanya boleh disahkan dengan input tersebut. Ini memang dijangka dan menghalang kata laluan yang sama daripada mempunyai nilai simpanan yang sama.
Pengiraan dilakukan pada pelayan. Input anda dihantar ke pelayan melalui HTTPS dan tidak disimpan. Bagi kata laluan sebenar dalam persekitaran pengeluaran, pertimbangkan sama ada memasukkannya ke dalam mana-mana perkhidmatan dalam talian pihak ketiga mematuhi dasar keselamatan organisasi anda.
Bolehkah cincangan bcrypt dinyahsulitkan atau diterbalikkan?
Tidak. Cincangan bcrypt tidak boleh dinyahsulitkan kerana ia bukan data yang disulitkan dan tidak mengandungi kunci penyahsulitan. Kaedah serangan yang praktikal adalah dengan meneka kata laluan yang mungkin, kemudian mengesahkan setiap tekaan terhadap cincangan yang disimpan.
Bcrypt memperlahankan proses meneka melalui kos yang boleh dikonfigurasikan. Namun, ia tidak dapat menjadikan kata laluan yang pendek, lazim atau pernah bocor sebagai selamat, dan penyerang yang gigih masih mungkin menemui input yang lemah. Garam menghalang penyerang daripada menggunakan semula satu jadual prapengiraan bagi banyak akaun, tetapi garam bukanlah rahsia dan disertakan dalam rekod yang disimpan.
Memahami hasil bcrypt
Hasil bcrypt biasanya mengikut format modular crypt. Bentuk lazimnya ialah $2y$12$[22-character salt][31-character checksum]. Ini sekadar gambaran format, bukannya cincangan bagi kata laluan tertentu.
| Bahagian | Panjang lazim | Tujuan |
|---|---|---|
| Penanda versi | 4 aksara | Mengenal pasti varian bcrypt, seperti $2y$ atau $2b$. |
| Kos | 3 aksara | Merekodkan kos dua digit yang diikuti oleh pemisah. |
| Garam | 22 aksara | Mengekodkan garam rawak 128 bit. |
| Jumlah semak | 31 aksara | Mengekodkan jumlah semak bcrypt 184 bit. |
Pastikan semua bahagian ini kekal bersama. Mengubah satu aksara, memendekkan nilai atau menyimpannya dalam lajur yang terlalu pendek biasanya akan menyebabkan pengesahan gagal. Penanda versi mungkin berbeza antara pustaka yang serasi. Oleh itu, aplikasi sepatutnya menggunakan API kata laluan yang mantap dan bukannya menghuraikan serta membina semula rekod tersebut sendiri.
Bilakah bcrypt patut digunakan?
Gunakan bcrypt untuk mencincang kata laluan dalam sistem yang sudah menyokongnya, terutamanya apabila keserasian dengan pangkalan data atau rangka kerja sedia ada penting. Bcrypt sengaja direka supaya perlahan dan menggunakan garam. Oleh itu, ia tidak sesuai digunakan sebagai jumlah semak fail kegunaan umum atau pengecam penyahduplikasian.
- Penggunaan yang sesuai termasuk kata laluan aplikasi, ujian pemindahan, pemeriksaan saiz medan pangkalan data dan penghasilan semula persekitaran pembangunan yang serasi dengan bcrypt.
- Gunakan Argon2id sebagai ganti untuk sistem kata laluan baharu jika platform menyokongnya dan tetapan memorinya boleh diuruskan dengan betul.
- Gunakan SHA-3 sebagai ganti untuk integriti fail, cap jari kandungan atau penyahduplikasian. Penjana SHA-3/384 dan Penjana SHA-3/512 menghasilkan cerna kegunaan umum, bukan rekod kata laluan.
- Jangan gunakan bcrypt untuk tandatangan digital, pengesahan mesej, penyulitan atau penyimpanan data yang perlu diperoleh semula kemudian.
Ruang, tanda baca dan nombor diproses sebagai data input, bukannya diabaikan. Aksara beraksen dan aksara bukan Latin dikodkan sebagai bait sebelum diproses oleh bcrypt. Oleh itu, kedua-dua sistem mesti menghasilkan bait yang sama, termasuk dengan menggunakan pengekodan aksara dan penormalan Unicode yang konsisten. Had 72 bait amat penting dalam keadaan ini kerana satu aksara Unicode boleh menggunakan lebih daripada satu bait. Input kosong secara teknikal boleh dicincang, tetapi kata laluan kosong tidak memberikan sebarang rintangan bermakna terhadap cubaan meneka.
Soalan lazim
Berapa banyak ruang pangkalan data diperlukan untuk cincangan bcrypt?
Sediakan sekurang-kurangnya 60 aksara ASCII bagi rekod bcrypt konvensional. Medan yang sedikit lebih lebar boleh membantu pemindahan kepada algoritma kata laluan lain pada masa hadapan, manakala lajur binari tidak diperlukan untuk bentuk berkod standard.
Bolehkah cincangan kata laluan SHA sedia ada dipindahkan kepada bcrypt?
Anda tidak boleh menukar cerna SHA sedia ada menjadi cincangan bcrypt bagi kata laluan asal tanpa mengetahui kata laluan tersebut. Kaedah pemindahan yang lazim ialah mengesahkan cincangan lama apabila pengguna mendaftar masuk sekali lagi, kemudian mencincang kata laluan yang diberikan menggunakan bcrypt atau Argon2id dan menggantikan rekod lama.
Sebelum menyimpan hasil, pastikan keseluruhan nilai 60 aksara telah disalin, medan pangkalan data tidak memendekkannya dan aplikasi penerima menyokong penanda versi dalam rekod tersebut.
Alat popular
Jana tandatangan tersuai anda sendiri dengan mudah dan muat turunnya dengan mudah.
Gunakan alat ping kami untuk menyemak status dan masa tindak balas mana-mana laman web, pelayan atau port dengan cepat dan cekap.
Alat carian IP Digily Link memberikan maklumat terperinci tentang mana-mana alamat IP. Gunakan perkhidmatan dalam talian percuma ini untuk mendapatkan data IP yang menyeluruh.
Jana pautan WhatsApp percuma anda serta-merta dengan Penjana Pautan WhatsApp kami. Tambah mesej tersuai dan mulakan sembang dengan satu klik, tanpa perlu log masuk atau menulis kod.