2011-04-14 35 views

回答

1

加密/散列用戶名是一種矯枉過正的行爲。如果你擔心安全,只需使用SHA256與隨機salt哈希。

加密用戶名沒有意義,因爲您可能基於userName,部分userName進行搜索。加密只會讓搜索變得困難。


好吧,我的整個生活中,我一直在使用SHA256與鹽認爲它是最強大的。 Rein Henrichs對此帖的好評如下:SHA256 may not be the safest。你可能想要使用bcrypt,但我想這很慢。我會做一些概念驗證,如果速度很慢,那麼我會留下SAH256 +散列。

感謝您的鏈接。

+1

SHA不是一個足夠複雜的哈希函數,可以防止強力攻擊。見http://codahale.com/how-to-safely-store-a-password/ – 2011-04-14 04:47:08

+0

謝謝!我想盡可能多,但我只是想,它不會要求 – mcbeav 2011-04-14 04:49:00

+0

@all更新的答案。 – Nishant 2011-04-14 04:52:22

1

沒有必要。只需使用哈希函數來設計暴力破解,就像bcrypt一樣。 SHA不足。

1

不,你不應該。

否則,您無法顯示註冊用戶列表或任何類型的註冊用戶。它也會使很多其他功能變得不必要的笨重。

只需使用適當高的工作因子對用戶密碼的單向摘要方法(如bcrypt)。

+1

我同意你不應該散列用戶名,但我也不建議存儲「加密」密碼。始終使用安全的1路散列哈希密碼。我總是懷疑那些允許我取回密碼的網站,而不是強制重置,因爲這意味着某些管理員可以解密我的密碼。 – squawknull 2011-04-14 04:38:53

+0

@squaknull對不起,哈希是我的意思。將解決我的答案。 – alex 2011-04-14 04:46:10

1

千萬不要以明文形式存儲密碼。但你不需要散列用戶名。

但我想你會使用這個用戶信息的某些服務器來允許客戶端登錄。如果密碼未從客戶端傳輸到服務器,則安全。在這種情況下,您可以使用某種單向散列來輸入密碼。如果您的客戶端和服務器都知道散列函數,則您的密碼永遠不需要通過線路連接。但是如果你想改變散列機制,就會出現問題。您的客戶端和服務器都需要更新。在這種情況下,客戶端必須協商使用哪種機制服務器。你最終會做一種spnego機制;)

相關問題