Jangan gunakan SHA1 atau SHA256 , seperti yang disarankan kebanyakan orang. Jelas jangan gunakan MD5 .
SHA1/256 dan MD5 keduanya dirancang untuk membuat checksum file dan string (dan tipe data lainnya, jika perlu). Karena itu, mereka dirancang untuk secepat mungkin, sehingga checksum cepat dibuat.
Kecepatan yang cepat ini membuat lebih mudah untuk memaksa sandi, karena program yang ditulis dengan baik dapat dengan mudah menghasilkan ribuan hash setiap detik.
Sebagai gantinya, gunakan algoritme lambat yang dirancang khusus untuk kata sandi. Mereka dirancang untuk menghasilkan sedikit lebih lama, dengan keuntungannya adalah serangan bruteforce menjadi jauh lebih sulit. Karena itu, kata sandi akan jauh lebih aman.
Anda tidak akan mengalami kerugian kinerja yang signifikan jika Anda hanya melihat mengenkripsi kata sandi satu per satu, yang merupakan implementasi normal dari penyimpanan dan pemeriksaan kata sandi. Hanya dalam jumlah besar di mana perbedaan sebenarnya.
Saya pribadi suka bcrypt. Seharusnya ada versi Perl yang tersedia, karena pencarian Google cepat menghasilkan beberapa kemungkinan kecocokan.