看板 PHP 關於我們 聯絡資訊
這個標題應該有別人提過,不過我沒搜尋到 那就當做炒冷飯,請程度相當的朋友參考就好 高手可以笑笑跳過了 :) ;; Win NT 系統有一個 NTFS 加密的選項 它可以做到如果你忘了密碼,就無法還原資料的境界 充其量就是 format,破壞它,一切重來 有人說重灌一顆 Win NT,登入後用它 access NTFS 就好了 這是沒設 NTFS 加密的狀況 如果只是缺乏 access NTFS 的能力,而且沒有加密的話 去拿一套專門支援 NTFS 的 DOS,會方便很多 可以快速拷出你的資料而不用重灌 NT 總之,Login 時的密碼是一關 而 Login 之後 access 資料又是另一關 這樣可以使 admin 也無法看到你的資料 在 linux,admin 可以取得最大權限 那什麼都有了 :P 當然 admin 應該可以'管理'使用者 我以為,管理不代表可以侵入;你頂多限制我的權限或刪除我的帳號 不過同事說,linux 的權限沒複雜到這樣(這點看有沒有高手可以補充) ;; 如果我架了一個站,讓人用 username & password 登入 當然就需要有一個 DB 去儲存這些東西 "但是不要儲存使用者的密碼",這是我們上課時,同事提及的 我以為,如果是 admin,或者被別人侵入 反正什麼都要被看光光了,你還在乎密碼幹什麼 "也許有用戶把這密碼通行各處,比如提款卡 我們被破就破了,但是還可以保護他的其他帳號不被侵入" 原來如此 難怪有這種說法,我(admin)架一個站給你上 我能知道你的密碼是否正確;但我並不知道你的密碼 也因此,有些網站的"忘記密碼",是讓你重設一個密碼,或者 admin 生一個新密碼給你 但是無法把你目前的密碼寄還給你 因為連網站自己都沒保存你的密碼!! 這觀念蠻有趣的,同事說有興趣去讀密碼學 要這麼說也不是 PO PHP 板了;只是我把它應用在 PHP 上 實作方法: 1.user 建立(輸入) $username & $password 2.$new_password=md5($username . $password); 3.在 DB 中,儲存 $username & $new_password 4.驗證時,user 會再次輸入 $username & $password 我們重新以 md5 編碼一次,如果可以得到相同的 $new_password 那就代表使用者輸入的密碼是正確的 因為步驟 3. 中,我們儲存的是 $new_password 而這是很難(並非不可以)反解回 $password 的 所以即使我們網站被破,使用者的 $password 也不會流出 以上概念,相信用在很多地方 ;; 問題來了 目前我是使用 phpbb2,因為第三版太龐大,來不及學會 不過我 trace 過第三版,發現它用的 rule 更有趣 舉例來說 如果有一堆人,都恰好用 '123' 當做密碼 而他也曾經在別的站用同一個 ID 做過 MD5 (比如我這個 HuangJC) 那麼,'HuangJC123' 這樣的字串會做出什麼 MD5,他偏偏有印象 那就有機會破? 我不曉得這機率高不高,但我覺得 phpbb3 連這點都在防!! 它的演算法,基本上是同一個 $username & $password 連續產生 $new_password 也會每一次的 $new_password 都不相同的!! 幹麻做這麼神 XD 至於不同的 $new_password 為什麼都能反證我輸入的 $password 是正確的 我還沒看懂.. 因為自己讀無法集中注意力,所以先來 PO 一下 :) 以上,謝謝 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 61.219.65.16
starjou :將密碼編碼後儲存的做法蠻常見的,md5 編碼可以加 08/11 17:32
starjou :seed,產生的編碼字串會不同 08/11 17:32
aquarianboy :加些鹽巴(salt)也不錯 :) 08/11 17:51
HuangJC :樓上連推文都是密碼,我 google 不到,無法領會啦~ 08/11 17:54
lgzenith :md5編碼前..自己加上自訂的字串就好了 08/11 17:58
HuangJC :原來自訂字串就叫鹽巴? ..應該有典故.. 08/11 17:59
$new_password = md5($username . $seed . $password); 以上,自己加 $seed 我可以了解 $seed 由亂數產生也很棒 但神奇的就是,既然如此,我如何確認 user 再次輸入的 $password 是正確的? 難不成,$seed 也被儲存了? 耶,有個方向,我查 code 先~ ※ 編輯: HuangJC 來自: 61.219.65.16 (08/11 18:01)
lgzenith :md5 salt 就Google的到了 08/11 18:01
HuangJC :謝謝,果然查資料要有門道 XD,我用'php salt'沒找到 08/11 18:11
aquarianboy :http://tw2.php.net/md5 其實底下的回應就有salt了 08/11 18:49
weiyucsie :其實看到這篇 我第一個想到的是one-way hashing 08/11 19:31
weiyucsie :http://tw2.php.net/crypt 第二個字串就是salt 08/11 19:31
weiyucsie :(不過這篇講到的理由 倒是不錯XD) 08/11 19:32