Skip to content
Wei-Cheng Yeh (IID) edited this page Jul 31, 2021 · 1 revision

新式密碼加密 (DLBBS v2.0+)

以下是夢之大地 BBS Version 2.0 以及之後版本的加密方式細節說明

如何使用新式密碼加密 (v2.0+)

夢之大地 v2.0 前的使用者,密碼不會自動變成用新式密碼加密,需要換新密碼才可以。 夢之大地 v2.0+ 的新使用者,在註冊帳號時會產生新密碼,不必另外去換新密碼。

夢之大地 v2.0 有對新密碼使用舊式密碼加密的選項,在產生新密碼時,會詢問要不要使用新式密碼加密,如果要使用新式密碼加密,請記得按確認,不然這個新密碼會使用舊式密碼加密。

夢之大地 v3.0 已預設對新密碼使用新式密碼加密,不過仍然保留此選項以允許使用舊式密碼加密。

另外,夢之大地 v2.0 的密碼輸入欄是完全隱形的,和 PttBBS 相同。

舊式密碼加密

目前夢之大地 (v1.x) 使用的密碼加密是傳統的 DES 密碼加密。

DES 密碼加密,有著密碼明碼只有前 8 個字元有效, 並且每個字元只有低 7 個 bits 有效的限制; 而在 2019 年的今天,它也已經有了加密強度不夠的問題。

新式密碼加密

從夢之大地 v2.0 開始,將啟用新的密碼加密系統,使用 SHA-256 密碼加密。

SHA-256 密碼加密沒有 DES 密碼加密的以上限制,可以使用更長、更安全的密碼明碼, 並且它在 2019 年還不能被有效地破解。 夢之大地 v2.0 會將密碼明碼的長度上限開放到 36 個字元。

「密碼加密」的說明

夢之大地使用的 DES 與 SHA-256 本身屬於密碼 hash 函數; 嚴格來說,它們所做的,不是「加密」一詞通常所稱的「雙向加密」。

一般的「加密」函數所做的,是將一段資料,使用某個密碼,轉換成另一段資料; 轉換後的資料需要原先的密碼,才能透過「解密」函數轉換為原先的資料; 沒有原先的密碼,則難以從轉換後的資料取得原先的資料。

而密碼 hash 函數所做的,是從一段資料計算出某個對應值; 不同的資料的對應值幾乎都不相同,而單從這個值也難以反推出原先的資料。

密碼 hash 函數沒有對應的「解密」函數; 需要 hash 一段資料,並比較 hash 的結果,才能知道是否符合原先的資料。

為了避免帳號資料擁有者,透過查看帳號資料檔,輕易地取得使用者密碼, 使用者輸入的密碼明碼會經過 hashing 後再儲存至帳號資料檔中,而非直接儲存。

驗證時,需要以同樣方式來 hashing,將其結果與先前儲存的 hashing 結果相比較; 如果 hash 值相同,那麼幾乎可以確定使用者輸入的密碼與設定的密碼是相符的。

而這種利用密碼 hash 函數來儲存與驗證密碼的方法,本文稱之為「密碼加密」。

新式密碼系統啟用,對使用者的影響

新的密碼加密系統會與舊的密碼加密系統並存,也就是說在 v2.0 前的使用者, 可以使用原來的密碼登入 v2.0+,也能登入 v2.0 前的版本,不受影響; 但如果密碼使用了新式密碼加密,就只能登入 v2.0+,不能登入 v2.0 前的版本。

夢之大地 v2.0 會暫時開放對新密碼使用舊式密碼加密的選項, 讓 v2.0 的新使用者也可以登入 v2.0 前的版本。

Clone this wiki locally