2011-10-15 86 views
1

一方面我有: http://forums.enterprisedb.com/posts/list/2481.page 在這裏我們聲明字段爲BYTEA,我們可以解密它,並且加密是在數據庫級別。密碼加密3方法

另一邊: https://www.owasp.org/index.php/Hashing_Java 這裏as varchar和我們只比較哈希來授權。

終於春天給了http://static.springsource.org/spring-security/site/docs/3.1.x/apidocs/org/springframework/security/crypto/password/StandardPasswordEncoder.html + char的祕密值應用到每個密碼都一樣嗎?

哪種方法最好? (我對春瘦,因爲據我瞭解封裝類似的邏輯,OWASP中的幾行代碼?)

+0

「最好」對你意味着什麼? –

+0

少代碼,更安全。 – Aubergine

回答

1

PostgreSQL的編碼:

  • 您的應用程序可能會依賴於PostgreSQL的,也許你不得不重寫這一部分如果你想使用它與另一個DBMS。
  • 如果PostgreSQL在另一臺機器上,則應考慮在應用程序和DBMS之間使用某種形式的安全通信,因爲密碼是以純文本形式在它們之間傳輸的。

OWASP VS春:

  • 他們都非常相似。
  • 兩者都使用鹽。
  • 春天使用一個祕密(Owasp不)。
  • 當然你可以修改Owasp使用祕密,如果你需要的話,或者你可以使用StandardPasswordEncoder沒有祕密。
  • Spring的encode()只返回一個包含salt的字符串(通常在unix/linux中),而Owasp需要鹽值的附加數據庫屬性。
  • 春天更簡單,也許比2008年的Owasp網頁文章更好的維護。
  • Owasp混合功能:它編碼/檢查密碼並且也包含很多JDBC代碼。
  • Spring只編碼/檢查密碼,您的責任是密碼存儲。但是也許你的框架爲你做了這個,或者你可以自己寫。

我想用StandardPasswordEncoder。它更簡單,和Owasp一樣。