2014-02-19 56 views
0

對這個問題Is it possible to use the Grails Jasypt plugin outside the GORM layer for simple String encryption and decryption?Jasypt插件在Grails的

我試圖實現它爲我的密碼加密/解密的參考加密/解密。 但每次它給同一密碼不同的加密值。所以我如何使用下面的代碼和jasypt配置?

def authenticate(){ 
def jasyptConfig = grailsApplication.config.jasypt 
org.jasypt.encryption.pbe.StandardPBEStringEncryptor stringEncryptor = 
     new org.jasypt.encryption.pbe.StandardPBEStringEncryptor(jasyptConfig) 

def encrypted = stringEncryptor.encrypt(params.password) 


} 

jasypt { 
algorithm = "PBEWITHSHA256AND256BITAES-CBC-BC" 
providerName = "BC" 
password = "test" 
keyObtentionIterations = 1000 

}

+0

發佈您的jasypt配置。有可能你使用的隨機鹽總是會導致不同的值。 –

+0

這是我jasypt配置: jasypt { 算法= 「PBEWITHSHA256AND256BITAES-CBC-BC」 的providerName = 「BC」 密碼= 「測試」 keyObtentionIterations = 1000 } – Britman

+0

喜jashua摩爾,如何配置這一點沒有亂? ! – Britman

回答

1

鹽!

如果您不在意,只需將ZeroSaltGenerator實例設置爲Encryptor即可。默認情況下,它是RandomSaltGenerator,所以輸出是不同的。

0

如果你想使用ZeroSaltGenerator那麼你必須做出以下更改: 裏面你的Config.groovy:

jasypt { 
    encryptorRegisteredName = "gormEncryptor" 
} 

而在你resources.groovy:

beans = { 
    hibernateStringEncryptor(HibernatePBEStringEncryptor) { 
     registeredName = "gormEncryptor" 
     algorithm = "PBEWITHSHA256AND256BITAES-CBC-BC" 
     providerName = "BC" 
     password = "test" 
     keyObtentionIterations = 1 
     saltGenerator = new org.jasypt.salt.ZeroSaltGenerator() 
    } 
} 

它將產生每次都有相同的加密值。