2013-11-22 34 views
2

我從來沒有用過Grails(或者Java)。我正在使用另一種語言/框架從頭開始重建最初由Grails構建的應用程序。我想從生產數據庫中引入現有用戶。我可以完全訪問數據庫和密碼哈希。我也可以訪問整個Grails源代碼。如何確定使用springsecurity在Grails應用程序中散列密碼的算法?

我已經能夠找出springsecurity插件似乎被使用。我在項目中爲SHA1,MD5和bcrypt等關鍵字做了簡單的搜索,但沒有任何結果。我也搜索了「grails.plugins.springsecurity.password.algorithm」的源代碼,但沒有出現。

springsecurity是否有一個通用的加密?

任何幫助,將不勝感激。

+0

我仍然不知道如何實際確定這一點。我意識到我的散列是64個字符,谷歌搜索,看到它可能是SHA-256。我使用了一個在線JavaScript哈希工具來散列我的密碼並比較結果。我確認它是SHA-256。 – davebobak

回答

1

根據Spring Security Core plugin documentation,默認加密是SHA-256。

這意味着它確實是這樣的:

import java.security.MessageDigest 

... 

String password = "<password to be encrypted>"; 
MessageDigest digest = MessageDigest.getInstance("SHA-256"); 
byte[] hash = digest.digest(password.getBytes("UTF-8")); 
+1

我最終偶然發現了這一點。我只是在整個項目中進行了搜索,找不到「SHA-256」,「256」等,所以我想這只是使用直接的默認值。謝謝! – davebobak

0

搜索包含

"springSecurityService.encodePassword(" 

"getEncodedPassword(" 

".encodeAsURLSafeBase64(" 
文件

和你「/域/」目錄肯定是像

user.groovy 

至極某些文件可能會帶來一些輕的來龍去脈,也許包含了一些有益的方法 在你的「/控制器/」目錄,你可以搜索控制器,處理註冊,也許它有一個服務,因爲這樣做/服務/

+0

對不起,但是'HashCodeBuilder'和'@ EqualsAndHashCode'與密碼加密有什麼關係? – elias

+0

我會刪除它們 –

相關問題