2013-10-14 40 views
6

密碼加密算法與Glassfish 4中的摘要算法有什麼區別? 因爲密碼加密算法不能爲空,所以我使用了MD5,而對於Encoding,Hex。 摘要算法是空的,所以默認是SHA-256。Glassfish 4 - JDBC領域

但是,如果我用JAAS創建了一個簡單的登錄應用程序,並創建表,插入一個用戶,並且密碼用MD5加密,則用戶無法登錄。如果我使用SHA-256加密密碼,用戶可以登錄。

那麼,什麼是密碼加密算法字段?

+0

我遇到從4.0遷移到4.1.1的問題http://stackoverflow.com/questions/40686737/migration-from-glassfish-4-0-to-glassfish-4-1-1-jdbc-realm -issue – Bikram

+0

對於密碼校驗器,SHA-256只比MD5稍好一些,都不應該使用。當保存密碼驗證者只使用哈希函數是不夠的,只是添加一個鹽沒有提高安全性。而應使用諸如「PBKDF2」,「Rfc2898DeriveBytes」,「Argon2」,「password_hash」,「Bcrypt」或類似功能的函數。關鍵是要讓攻擊者花費大量時間通過暴力破解密碼。 – zaph

回答

2

這方面的文件不是很清楚,但我的解釋如下。這是基於Glassfish v4 reference manual

密碼加密算法決定密碼在您的數據庫內如何加密。這是參數digestrealm-password-enc-algorithm。你真的想把這個設置成某種東西,因爲當然在密碼數據庫中保留密碼是一個安全漏洞。

當有人嘗試進行身份驗證時,glassfish需要一種方法來比較提交的內容和數據庫中的內容。但是,由於後者全部鎖定,所以需要解鎖鑰匙。在密鑰上使用的加密(嚴格來說,散列)是在摘要算法(參數digest-algorithm)中定義的。它在v4中默認爲SHA-256(之前是MD5)。

0

那麼,什麼是密碼加密算法字段?

摘要算法用於加密/哈希登錄請求,而密碼加密算法用於從db解密密碼。

但是,如果我做了JAAS一個簡單的登錄應用程序,並創建 表,插入一個用戶,密碼用MD5加密,則 用戶無法登錄。

認沽MD5在密碼加密字段中,並將摘要算法留空(默認情況下,它在GlassFish 4中爲sha-256)。

+0

我這樣做了,但如果我想登錄,它不起作用。所以呢?但是,如果我將密碼字段更改爲SHA-256編碼密碼,則它正在工作。 – galovics

+0

嗨,你是否設法解決它?你可以把MD5放在兩個地方,然後再試一次嗎? (使用MD5對數據庫中的密碼進行散列處理)。 在GlassFish OSE 4.0和MySQL中,Sha-256和MD5加密都可以正常工作。 無論如何,如果它與SHA-256一起工作,你應該堅持這一點,因爲MD5哈希文本已經被20個Playstation的集羣的力量破解。SHA-256是'更安全',因爲它需要更多時間來解密它。 –