2014-10-06 666 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