php 密碼加密解密

這裏推薦一個我用的加鹽HASH
$salt=base64_encode(mcrypt_create_iv(32,MCRYPT_DEV_RANDOM));
$password=sha1($register_password.$salt);


解釋:
首先使用mcrypt,產生電腦隨機生成的,專門用戶加密的隨機數函數。
第二步,把得到的隨機數通過base64加密,使其變長並且不利於猜解。
第三步,把得出的鹽拼接到密碼的後面,再對其使用sha1進行哈希
再把password存入到用戶的數據庫。
PS:爲何不用靜態的salt?沒有必要,使用一個動態隨機足夠長的鹽足矣。
爲何不用MD5?因爲長度不夠。
爲何沒有使用多次HASH?因爲這樣反而容易發生碰撞。
HASH好之後怎麼使用“醃製”好的密碼?
用戶註冊->提交密碼->產生salt->醃製好的密碼存入數據庫->salt存入數據庫。
用戶登錄->提交密碼->調用salt接到提交密碼的後面->進行HASH->調用之前註冊醃製好的密碼->對比HASH值是否和這個密碼相同

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章