作者kencool107 (臉都歪了)
看板PHP
標題[請益] MD5的一些疑惑
時間Thu Jun 14 10:08:24 2012
抱著對MD5應用的一些疑惑去Google了一下
看到一篇
應用一:儲存密碼
這是 MD5 最常被使用的用途。
首先,我們將新使用者所輸入的密碼字串內容
(術語稱為明碼,也就是編碼前的密碼),
傳給 MD5 演算函數算出暗碼 (編碼後的密碼),
之後我們將該暗碼,連同使用者 ID 及其他資料一併存入資料庫中。
例如使用者帳號為 rock ,密碼為 iloverock,
儲存在資料庫中的帳號資料格式及內容如下:
rock:85782f5e159d638811a7a8a7fa318754
第二個欄位儲存的,就是暗碼。
稍後,當使用者欲再簽入時,
先以使用者 ID 為鍵值,
自資料庫中讀取帳號資料,
再將使用者輸入的明碼,
同樣地傳給 MD5 演算函數得出一結果,
將此結果與帳號資料中的暗碼比對是否完全相符。
-------------------------------------------------------------
我的問題是 這樣做和直接將明碼存在DB
再拿輸入的明碼去跟DB比對有什麼不同
畢竟比對這種事 應該是寫在php裡面 使用者應該看不到才對
為何要多此一舉呢
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 60.251.55.25
※ 編輯: kencool107 來自: 60.251.55.25 (06/14 10:11)
1F:→ CaptainH:1. 避免 web admin 監守自盜 06/14 10:22
2F:推 LPH66:當資料庫內容外洩時 在當中看到明碼是件糟糕透頂的事 06/14 10:23
3F:→ CaptainH:2. 即使資料庫外流, 密碼也不會外洩 06/14 10:23
所以主要是對資料庫的內容做保護囉 學習了
※ 編輯: kencool107 來自: 60.251.55.25 (06/14 10:27)
4F:→ gname:缺點是密碼忘了就取不回來了... 06/14 11:00
5F:→ arrack:正常的md5 通常還是取得回來 06/14 11:03
6F:→ arrack:尤其是那種用單字當密碼的 06/14 11:05
MD5不是不可逆的嗎??除非用非常手段?
這讓我想到昨天我要上1111人力銀行的時候
密碼忘記了
然後輸入一些資料 它就把原本的密碼寄給我了(不是亂數生成的)
這說明了 他密碼是用明碼的方式存在資料庫嗎
還是有其他種做法
※ 編輯: kencool107 來自: 60.251.55.25 (06/14 11:08)
※ 編輯: kencool107 來自: 60.251.55.25 (06/14 11:11)
7F:→ arrack:是單向沒錯,但當你知道XXXX加密後=YYYY 這種單向就可以破 06/14 11:23
8F:→ arrack:有現成的表可以查 06/14 11:26
9F:→ twsphere:這樣多人使用怎可能都用單字.我猜是明碼吧..(轉頭) 06/14 11:27
10F:→ arrack:1111那種當然是明碼,104、露天好像也是 06/14 11:30
11F:推 twsphere:。。剛剛測試=.=硍真的是明碼.想申請刪除資料了 06/14 11:32
12F:→ arrack:所以密碼最好每個網站都不同(認真) 06/14 11:34
13F:→ kerash:GOOGLE 我的密碼沒加密 , 會知道某些站都是plaintext 06/14 12:00
14F:推 twsphere:推上來那個 好網站 不錯 06/14 15:04