Rumah >pangkalan data >tutorial mysql >Apakah Jenis Data dan Panjang yang Perlu Saya Gunakan untuk Menyimpan Kata Laluan Dicincang?

Apakah Jenis Data dan Panjang yang Perlu Saya Gunakan untuk Menyimpan Kata Laluan Dicincang?

Barbara Streisand
Barbara Streisandasal
2024-12-24 02:14:17604semak imbas

What Data Type and Length Should I Use for Storing Hashed Passwords?

Jenis Data untuk Kata Laluan Cincang dan Panjang Optimum

Soalan: Bagaimana untuk menentukan jenis dan panjang data yang sesuai untuk kata laluan cincang?

Apabila melaksanakan pencincangan kata laluan, adalah penting untuk memilih jenis data dan panjang yang sesuai untuk menyimpan pencincangan nilai. Biasanya, fungsi cincang menjana hasil daripada panjang tetap, tetapi panjang dan perwakilan berbeza-beza berdasarkan algoritma tertentu.

Jawapan: Pemilihan jenis data dan panjang bergantung pada algoritma pencincangan bekerja:

  • MD5: cincang 128-bit; boleh disimpan sebagai CHAR(32) atau BINARI(16).
  • SHA-1: cincangan 160-bit; boleh disimpan sebagai CHAR(40) atau BINARI(20).
  • SHA-256: cincangan 256-bit; boleh disimpan sebagai CHAR(64) atau BINARI(32).
  • SHA-512: cincangan 512-bit; boleh disimpan sebagai CHAR(128) atau BINARI(64).
  • BCrypt: cincangan 448-bit; mungkin memerlukan CHAR(56), CHAR(60), CHAR(76), BINARI(56), atau BINARI(60).

Cadangan:

NIST mencadangkan menggunakan SHA-256 atau fungsi cincang yang lebih tinggi untuk aplikasi saling kendali. Walau bagaimanapun, menggunakan fungsi cincang ini semata-mata tidak mencukupi untuk penyimpanan kata laluan yang selamat.

Oleh itu, adalah disyorkan untuk menggunakan algoritma cincang pengukuhan kunci seperti Bcrypt atau Argon2i. Sebagai contoh, fungsi password_hash() PHP menggunakan Bcrypt secara lalai, menghasilkan cincangan 60 aksara. Untuk menampung ini, pertimbangkan untuk menggunakan jenis data CHAR(60) untuk storan.

Atas ialah kandungan terperinci Apakah Jenis Data dan Panjang yang Perlu Saya Gunakan untuk Menyimpan Kata Laluan Dicincang?. 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