2014-10-06 114 views
1

嗨,我有一個Java應用程序。我想用Jasypt來加密和解密密碼,並根據大小和算法生成隨機鹽。用Jasypt和隨機鹽密碼加密和解密

這就是我想要實現的。

  1. 創建一個隨機鹽。
  2. 使用salt加密密碼。
  3. 保存用戶的鹽分和加密密碼。

我想要鹽的大小,算法作爲輸入。

我想要解密的原因是,我爲應用程序創建了一些配置文件,並且有些值是我想要在文件中加密保存的密碼,並在我想要使用它時將其解密。

我有this Java class它創建鹽,然後創建哈希碼,我可以用它來驗證用戶(我可以保存salt和hascode而不是加密的密碼。)。我改變了它,並創建了一個方法來在該示例中創建隨機鹽。但是沒有解密方法。

這就是爲什麼我選擇Jasypt。但是我沒有看到如何使用它的適當例子。

我嘗試了下面,總是返回相同的鹽。

public static void main(String[] args) { 

    RandomSaltGenerator saltGenerator = new RandomSaltGenerator(); 
    byte[] salt = saltGenerator.generateSalt(24); 
    System.out.println(salt); 
} 

任何人都可以提供一個適當的例子或如何以我自己的方式使用它?我想實現什麼Jasypt have mentioned in their article。但是沒有可用的代碼。

回答

3

這篇與Jasypt有關的文章約password encryption描述了用單向加密存儲加密用戶密碼的標準最佳實踐。一旦您使用這些技術存儲了密碼,現在可以對其進行解密。

如果您需要爲應用程序配置加密和解密密碼,您應該考慮使用由Jasypt(或任何最適合您的數據類型的提供商)提供的StandardPBEStringEncryptor。這page包含很好的解釋和示例代碼。

更好的是,Jasypt使用.properties文件(也對Spring有很好的支持)爲encrypted application configuration提供一流的支持。

+0

謝謝!很好的解釋。 – Prateek 2016-08-15 19:05:54