2013-06-20 42 views
0

我有幾個關於使用MySQL/Visual Studio 2010(VSTO Visual Basic)存儲/檢索密碼的問題。我希望他們直截了當!SHA-2用於MySQL數據庫中的密碼存儲?

SHA-2問題

我正在使用MySQL的表(通過phpMyAdmin界面)來存儲只是兩列:用戶ID &密碼。通過SO和其他一些資源閱讀後,似乎使用SHA-2加密和鹽析來存儲密碼是一個可行的選擇。它是否正確?

Visual Studio 2010的問題

我建立在Visual Studio 2010中一個VSTO項目,將使用Visual Basic在表中訪問數據 - 我怎麼可以編碼與SHA-用戶輸入的密碼2算法?我似乎無法找到有關此過程的任何「當前」指南。我想我必須下載/安裝一個可以將SHA-2算法處理到VS2010的擴展。這裏的過程是,我在Excel中創建了一個「登錄系統」,但我想通過將它與MySQL表中已有的數據進行比較來驗證用戶名/密碼組合。

醃製問題

另外,醃製強烈建議幾乎無處不在我讀,所以我決定用一個隨機字符串喜歡的@ w0s9w%$ x」或類似的東西,顯然存儲此/使用每次我需要對密碼進行編碼+匹配到數據庫,這是否足夠安全?您如何爲每個用戶使用不同的鹽字,但保持跟蹤?您是否簡單地將用戶名/鹽字組合保存在另一個表中並提取它以後?

編輯:添加更多信息!

回答

1

不要嘗試創建自己的密碼哈希方案。相反,使用一個衆所周知的。通常有三種選擇:BcryptScryptPBKDF2。這些由安全專業人員設計,並且已經存在了很長時間,並且沒有被破壞。實現可用於多種語言。

對於鹽析問題,您有基本的想法。鹽通常與密碼一起存儲在數據庫中。鹽不被認爲是一個祕密,但它應該是每個用戶都是獨一無二的。 Bcrypt哈希本身已經包含鹽,所以你不必擔心這一點。

相關答案security.se:https://security.stackexchange.com/a/6415/20774

密碼散列的主題一個很好的文章:http://crackstation.net/hashing-security.htm

+0

所提出的算法是很好的選擇,因爲他們是緩慢的(有成本因素)。 SHA- *的一次傳遞速度太快,因此可能太容易被粗暴對待。 – martinstoeckli

相關問題