Penyerang "diizinkan" untuk mengetahui garam - keamanan Anda harus dirancang sedemikian rupa sehingga bahkan dengan pengetahuan tentang garam itu tetap aman.
Apa fungsi garam ?
Salt membantu dalam bertahan melawan serangan brute force menggunakan "rainbow-tables" yang telah dihitung sebelumnya.
Garam membuat brute force jauh lebih mahal (dalam istilah waktu/memori) bagi penyerang.
Menghitung tabel seperti itu mahal dan biasanya hanya dilakukan jika dapat digunakan untuk lebih dari satu serangan/kata sandi.
JIKA Anda menggunakan garam yang sama untuk semua kata sandi, penyerang dapat melakukan pra-komputasi tabel seperti itu dan kemudian memaksa kata sandi Anda menjadi cleartext ...
Selama Anda membuat garam acak baru (terbaik secara kriptografis kuat) untuk setiap sandi yang ingin Anda simpan hashnya, tidak akan ada masalah.
JIKA Anda ingin memperkuat keamanan lebih lanjut
Anda dapat menghitung hash beberapa kali (hash, hash, dll.) - ini tidak memerlukan banyak biaya, tetapi membuat serangan brute-force / menghitung "tabel pelangi" menjadi lebih mahal... tolong jangan jangan membuat sendiri - ada metode standar yang terbukti untuk melakukannya, lihat misalnya http://en. wikipedia.org/wiki/PBKDF2
dan http://www.itnewb.com/tutorial/Encrypting-Passwords-with-PHP-for-Storage-Using-the-RSA-PBKDF2-Standard
CATATAN:
Menggunakan mekanisme seperti itu hari ini wajib sejak "CPU time" (dapat digunakan untuk serangan seperti tabel pelangi/brute force dll.) semakin banyak tersedia (lihat misalnya fakta bahwa layanan Cloud Amazon termasuk di antara 50 superkomuter tercepat di seluruh dunia dan dapat digunakan oleh siapa saja untuk jumlah yang relatif kecil)!