2017-03-09 54 views
-5

解碼MD5 passwordencode數據我在Java和春季。我新二手Md5PasswordEncoder密碼我encoding.how可以解碼。我怎麼在春天

我的編碼代碼是

Md5PasswordEncoder md5PasswordEncoder = new Md5PasswordEncoder(); 
    String monthlycost = md5PasswordEncoder.encodePassword(
      empDetails.getMonthlyCost(), null); 
    String monthlyGrossSalary = md5PasswordEncoder.encodePassword(
      empDetails.getMonthlyGrossSalary(), null); 

請幫我換

+1

如果你的目標是在某些時候解碼它,你爲什麼要編碼它? – f1sh

回答

0

不能解碼吧!

Md5PasswordEncoder的Javadoc:

由於MD5是單向哈希,鹽可以包含任何字符

它是單向散列,所以不能對其進行解碼。

+0

@jermiya密碼不應解密 – Jaiwo99

1

散列算法,如MD5的整點是,你不能解碼。這是一種單向函數而不是加密算法。

所以......基本上......你不能解碼它。

,這個類應該使用的方式是,你在清澈開始與用戶的密碼,當您註冊它。然後你散列密碼(用salt)並將散列存儲在數據庫中。稍後,當用戶嘗試登錄時,他/她會再次輸入密碼。您將其散列(使用相同的鹽),然後將散列與之前存儲的散列進行比較。如果哈希值相同,則用戶提供了正確的密碼。

換句話說,這使用戶無需在你的數據庫中存儲用戶的實際密碼(以明文或加密)檢查用戶的密碼。

在代碼中,你要使用的編碼器的目的,它是不適合。這根本不適用。 Md5也不是。

下面是問答& A和如何做加密和解密在Java中的例子:

我敢肯定,你可以使用,如果你另類圖書館找到其他例子想要搜索。

1

看來,你是不是新來的Java,但編程一般。 MD5是一種哈希算法。散列算法是(或應該是)單向算法。

例子:

如果你想創建一個登錄系統,或者讓您可以保存密碼的MD5,當用戶registrates。當他嘗試登錄時,您可以創建哈希值,並在註冊時將其與您保存的哈希值進行比較。假定你的數據庫中沒有密碼本身。

您可以閱讀更多關於here