【问题标题】:Jasypt - encrypt and decrypt using different encryptorsJasypt - 使用不同的加密器加密和解密
【发布时间】:2017-01-30 06:37:44
【问题描述】:

情况是我有一个使用休眠的应用程序。我将它配置为与 jasypt 一起使用,以便此应用程序将数据加密到数据库中。 然后,我有另一个从数据库读取数据的应用程序,它不使用休眠。 两个应用使用相同的数据库,第二个应用需要读取和解密第一个应用加密的数据。

尽管我在两个应用程序中使用相同的 jasypt pwd,但现在我遇到了这个异常:

Exception in thread "main" org.jasypt.exceptions.EncryptionOperationNotPossibleException

我正在使用 BasicTextEncryptor 进行解密。

我想知道我需要的东西是否可行,如果可行,如何实现。

请注意,jasypt 加密和解密在使用休眠的应用程序中工作

【问题讨论】:

  • 您是否使用相同的密钥来加密/解密进出数据库的数据?两边都没有指定的盐或任何东西存放?
  • 是的,相同的键。没有我知道的盐

标签: java hibernate encryption jasypt


【解决方案1】:

我遇到了类似的错误,我也使用了 BasicTextEncryptor。

原因:BasicTextEncryptor 使用 StandardPBEStringEncryptor 来创造魔法。最后一个使用salt,默认salt是RandomSaltGenerator。

解决方案:干净的方法是使用扩展 TextEncryptor 接口创建自己的加密器(只有几个方法)。以 BasicTextEncryptor 为例。

代码示例(避免错误):

StandardPBEStringEncryptor encryptor = new StandardPBEStringEncryptor();
encryptor.setPassword(encryptionKey);
encryptor.setSaltGenerator(new StringFixedSaltGenerator(salt));
String encodedString = encryptor.encrypt(originalString);

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-11-30
    • 1970-01-01
    • 2021-07-13
    • 2021-12-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-01-18
    相关资源
    最近更新 更多