Re: [請益] 明碼常用加密組合方式

看板PHP作者 (mingtsay〃小喵)時間12年前 (2013/05/20 21:06), 編輯推噓4(4011)
留言15則, 7人參與, 最新討論串1/1
※ 引述《tas72732002 (蔥頭)》之銘言: : 最近需要處理到使用有關明碼打亂的功能, : 想請問一下,一般會如何自訂明碼打亂方式來增加其安全性 : 之前是常用md5($password) 但發現如果只使用這樣, 很容易被破解, : 想請問各位大大 是否可提供一下常用的打亂方式,如合'組合'才會安全~ <?php function new_salt() { $chars = "abcdefghijklmnopqrstuvwxyz" . // 太長占版面所以分成兩行 "ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789"; $salt = ""; // 設定 salt 的長度為 16 for($i = 0; $i < 16; ++$i) { $salt .= $chars[mt_rand(0, strlen($chars) - 1)]; } return $salt; } function string_to_hashed($str, $salt = NULL) { if($salt == NULL) $salt = new_salt(); $hashed = hash("sha256", $str.$salt); // 把要加密的資料加上 salt return $salt.$hashed; // 記得也把 salt 傳回來 } function hashed_compare($str, $hashed) { $salt = substr($hashed, 0, 16); // 取出 salt (注意長度要一致) $str_hashed = string_to_hashed($str, $salt); return ($str_hashed == $hashed); // 比較是否為一樣的內容 } -- 〞` ◥◣◢◣◢◣ ◢▏。 ○ ο ° ██◤ █◤◥◤█ o ° ◤ ◥ █ █ ╱﹋ ˍ ◤◤ ◢◤ ◢◤██◣ ◢ ◢◤ ◤ingsay ◢███ ζ ) ) mt.rmstudio.tw mt@moztw.org ◤◤ wnqui -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 118.160.157.72

05/20 21:17, , 1F
每次都用不同的salt!
05/20 21:17, 1F

05/20 21:22, , 2F
推!! 非常精美!!
05/20 21:22, 2F
a60301:如有需要也可以把 $hashed = hash("sha256", $str.$salt); 改成 $hashed = hash("sha256", md5($str) . $salt);

05/20 22:27, , 3F
推!!
05/20 22:27, 3F

05/20 23:39, , 4F
strlen($chars)是否應該為strlen($chars)-1?
05/20 23:39, 4F
a60301:昨天寫太快了沒注意,感謝提醒! 05/21 08:02

05/21 00:48, , 5F
我不是資安專業,但是我猜測這樣做並沒有比較安全耶
05/21 00:48, 5F

05/21 00:49, , 6F
可能不同使用者有自己獨特的salt就夠了,每次不同的salt
05/21 00:49, 6F

05/21 00:50, , 7F
,而且傳輸時又夾帶salt,駭客仍然只需要針對該使用者製作
05/21 00:50, 7F

05/21 00:50, , 8F
rainbow table即可。
05/21 00:50, 8F

05/21 00:51, , 9F
參考資料:http://0rz.tw/RQSgE 如有誤還懇請指證,謝謝
05/21 00:51, 9F

05/21 01:04, , 10F
同樓上的疑問 salt不是不該被存進資料庫嗎?
05/21 01:04, 10F
a60301:基本上資料庫照理來說應該要有措施,防止別人拿到hashed字串 05/21 08:07 否則任何的雜湊法也只是遲早被暴力破解出來而已 不然可以選用雜湊時間花費較久的雜湊演算法也是可以

05/21 01:06, , 11F
salt不存起來,那該如何產生出一樣的結果?
05/21 01:06, 11F

05/21 06:44, , 12F
可以放在資料庫以外的地方,只要保證同一個明碼必定用同
05/21 06:44, 12F

05/21 06:46, , 13F
一個salt就好了。較土就是大家共用一個salt。
05/21 06:46, 13F
※ 編輯: a60301 來自: 101.12.94.167 (05/21 08:09)

05/21 13:22, , 14F
總之一切都要看系統被拿走的資料多到什麼地步
05/21 13:22, 14F

05/22 11:07, , 15F
打這篇也太花時間了
05/22 11:07, 15F
※ 編輯: a60301 來自: 114.34.74.8 (05/22 11:55)
文章代碼(AID): #1HcX_YNQ (PHP)
文章代碼(AID): #1HcX_YNQ (PHP)