Penghasilan kata laluan (password) di dalam perisian
Posted by mkhairulBagaimana anda menghasilkan kata laluan pengguna apabila akaunnya dihasilkan? Menggunakan MD5? SHA-1? Ok, bagus kerana encrypt kata laluan kerana kebanyakan orang menggunakan kata laluan yang sama untuk pelbagai perkhidmatan (services).
Apa akan jadi kalau tak encrypt kata laluan?
Tak jadi ape ape pun dari segi fungsi aplikasi, tetapi akibatnya adalah dari segi perundangan (link menerangkan Data Protection Act di UK, tak pasti di Malaysia ada ke tak). Kalau orang dapat masuk server melalui exploit OS ataupun perisian lain kemudian dump database, mereka terpaksa lalui lagi satu halangan, encrypted password. Kalau tak encrypt (istilah ‘tak encrypt’ selalu digunakan sebagai ‘plain-text’)? Larian tanpa halangan la jawabnya.
Ok, dah encrypt? Cukupkah?
Tak cukup! Kena tambah garam (salt) sikit, sebagai penambah perisa. Kenapa? Sebab teks yang telah encrypt tu boleh dipadankan dengan menggunakan pengkalan data seperti GData: An Online MD5 Hash Database. Bahayakan?
Bila tambah garam sikit, agak sukar untuk teks tersebut ditukar kembali (reverse lookup) kerana ia takkan jumpa walaupun anda menggunakan kata laluan generic seperti qwe123.
Jadi, macam mana nak tambah garam?
$salt = substr($password, 1, 3); $e_password = md5($password . $salt);
Macam tu je. Mudah. Harap maklumat ni dapat membantu sedikit sebanyak.
Edit: Menggunakan $salt pada $e_password = md5($password . $salt)
This entry was posted on Wednesday, September 2nd, 2009 at 2:05 am and is filed under Tip, sekuriti. You can follow any responses to this entry through the RSS 2.0 feed. You can leave a response, or trackback from your own site.
[...] Cara atasinya : sembangprogramming.com [...]
September 3rd, 2009 at 10:52 amBelum berapa faham lagi… baca je lah dulu
September 26th, 2009 at 1:16 pmsebab ape.. tak guna variable $salt..
$e_password = md5($salt);
leh terangkan sikit..
October 12th, 2009 at 9:11 pmAlamak, baru perasan, tertinggal sesuatu.
Sepatutnya salt tu digunakan macam ni,
October 12th, 2009 at 11:43 pm$e_password = md5($password . $salt);
md5 yg ada salt mmg payah nak crack..
November 15th, 2009 at 9:13 pmcthnya joomla punya hash..
sampai bertahun-tahun estimated time nk brute force..