⊗ppPmAuRHS 424 of 447 menu

Menambah Garam kepada Pendaftaran

Jadi, anda sudah tahu bahawa hashing melalui md5 adalah proses yang tidak boleh diterbalikkan dan penggodam, yang mendapat akses kepada hash, tidak akan dapat memperoleh kata laluan daripada hash tersebut.

Sebenarnya pernyataan ini tidak begitu tepat - pada masa ini, penggodam jahat telah menyusun perpustakaan hash untuk kata laluan yang popular dan kurang popular, dan sesiapa sahaja boleh memecahkan kata laluan dengan hanya mencari hash tersebut di Google.

Ini merujuk kepada kata laluan yang agak mudah dan popular.

Cuba google, contohnya, hash 827ccb0eea8a706c4c34a16891f84e7b dan anda akan terus nampak dalam carian Google, bahawa ia adalah kata laluan '12345'.

Hash untuk kata laluan yang cukup kompleks tidak boleh dipecahkan dengan cara ini (cubalah).

Anda mungkin bertanya, apa masalahnya kemudian - mari kita semua mendaftar dengan kata laluan yang kompleks. Namun, terdapat satu masalah - majoriti pengguna tidak memikirkan keselamatan data mereka dan mungkin memasukkan kata laluan yang agak mudah.

Kami boleh memaksa mereka untuk mencipta kata laluan yang lebih panjang semasa pendaftaran, dengan menyekat, contohnya, jumlah minimum aksara kepada 6 atau 8, namun, kata laluan seperti '123456' atau '12345678' tetap akan muncul.

Sudah tentu, kita boleh mencipta algoritma yang lebih bijak untuk menyemak kerumitan kata laluan, tetapi terdapat penyelesaian lain.

Intipati penyelesaian ini adalah: kata laluan perlu digaramkan. Garam - ialah rentetan rawak khas, yang akan ditambahkan pada kata laluan semasa pendaftaran dan hash akan dikira bukan daripada kata laluan biasa, tetapi daripada rentetan garam+kata laluan, iaitu daripada kata laluan yang telah digaramkan.

Iaitu, semasa pendaftaran anda akan melakukan something seperti ini:

<?php $salt = '1sJg3hfdf'; // garam - rentetan rawak yang kompleks $password = md5($salt . $_POST['password']); // tukar kata laluan kepada hash bergaram ?>

Pada masa yang sama, garam akan berbeza untuk setiap pengguna, ia perlu dijana secara rawak pada masa pendaftaran.

Berikut adalah fungsi siap yang akan melakukannya:

<?php function generateSalt() { $salt = ''; $saltLength = 8; // panjang garam for($i = 0; $i < $saltLength; $i++) { $salt .= chr(mt_rand(33, 126)); // aksara daripada jadual-ASCII } return $salt; } ?>

Dengan menggunakan fungsi ini, kod kami boleh ditulis semula seperti ini:

<?php $salt = generateSalt(); // garam $password = md5($salt . $_POST['password']); // kata laluan bergaram ?>

Saya ulangi sekali lagi, bahawa ini adalah perubahan semasa pendaftaran - dalam pangkalan data kami menyimpan bukan sekadar hash kata laluan, tetapi hash kata laluan yang telah digaramkan.

Itu belum semuanya: dalam jadual pengguna selain medan login dan password, kita perlu mencipta medan salt, di mana kita akan menyimpan garam setiap pengguna.

Laksanakan pendaftaran dengan kata laluan bergaram seperti yang diterangkan di atas.

Melayu
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Kami menggunakan kuki untuk operasi laman web, analisis dan personalisasi. Pemprosesan data dijalankan mengikut Polisi Kerahsiaan.
terima semua tataletak tolak