使用Jasypt和随机盐进行密码加密和解密

时间:2014-10-06 07:18:05

标签: java encryption jasypt

您好我有一个Java应用程序。我想使用Jasypt根据大小和算法生成随机盐来加密和解密密码。

这就是我想要实现的目标。

  1. 创建随机盐。
  2. 使用salt加密密码。
  3. 为用户保存salt和加密密码。
  4. 我希望将盐大小算法作为输入。

    我想要解密的原因是,我有一些为应用程序创建的配置文件,有些值是我想在文件中加密保存的密码,并在我想使用它时解密。

    我有this Java class创建salt然后创建哈希代码,我可以用它来验证用户(我可以保存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。但是没有可用的代码。

1 个答案:

答案 0 :(得分:3)

这篇关于password encryption与Jasypt的文章介绍了使用单向加密存储加密用户密码的标准最佳做法。一旦您使用这些技术存储了密码,现在就可以解密它了。

如果您需要加密和解密应用程序配置的密码,您应该考虑使用Jasypt提供的StandardPBEStringEncryptor(或任何最适合您的数据类型的提供商)。这个page包含很好的解释和示例代码。

更好的是,Jasypt使用.properties文件为encrypted application configuration提供了一流的支持(同时也很好地支持Spring)。