Jasypt - 使用不同的加密器加密和解密
Jasypt - encrypt and decrypt using different encryptors
情况是我有一个使用休眠的应用程序。我将其配置为与 jasypt 一起使用,以便此应用程序将数据加密到数据库中。
然后,我有另一个从数据库读取数据的应用程序,它不使用休眠。
两个应用使用相同的数据库,第二个应用需要读取和解密第一个应用加密的数据。
尽管我在两个应用程序中使用相同的 jasypt pwd,但现在我遇到了这个异常:
Exception in thread "main" org.jasypt.exceptions.EncryptionOperationNotPossibleException
我正在使用 BasicTextEncryptor 解密。
我想知道我需要的是否可行,如果可行,如何实现。
请注意,jasypt 加密和解密在使用休眠的应用程序中运行
我遇到了类似的错误,我也使用了 BasicTextEncryptor。
原因:BasicTextEncryptor 使用 StandardPBEStringEncryptor 来创造奇迹。最后一个使用盐,默认盐是 RandomSaltGenerator。
解决方案:干净的方法是通过扩展 TextEncryptor 接口创建自己的加密器(只有几种方法)。看一下 BasicTextEncryptor 里面的例子。
代码示例(避免错误):
StandardPBEStringEncryptor encryptor = new StandardPBEStringEncryptor();
encryptor.setPassword(encryptionKey);
encryptor.setSaltGenerator(new StringFixedSaltGenerator(salt));
String encodedString = encryptor.encrypt(originalString);
情况是我有一个使用休眠的应用程序。我将其配置为与 jasypt 一起使用,以便此应用程序将数据加密到数据库中。 然后,我有另一个从数据库读取数据的应用程序,它不使用休眠。 两个应用使用相同的数据库,第二个应用需要读取和解密第一个应用加密的数据。
尽管我在两个应用程序中使用相同的 jasypt pwd,但现在我遇到了这个异常:
Exception in thread "main" org.jasypt.exceptions.EncryptionOperationNotPossibleException
我正在使用 BasicTextEncryptor 解密。
我想知道我需要的是否可行,如果可行,如何实现。
请注意,jasypt 加密和解密在使用休眠的应用程序中运行
我遇到了类似的错误,我也使用了 BasicTextEncryptor。
原因:BasicTextEncryptor 使用 StandardPBEStringEncryptor 来创造奇迹。最后一个使用盐,默认盐是 RandomSaltGenerator。
解决方案:干净的方法是通过扩展 TextEncryptor 接口创建自己的加密器(只有几种方法)。看一下 BasicTextEncryptor 里面的例子。
代码示例(避免错误):
StandardPBEStringEncryptor encryptor = new StandardPBEStringEncryptor();
encryptor.setPassword(encryptionKey);
encryptor.setSaltGenerator(new StringFixedSaltGenerator(salt));
String encodedString = encryptor.encrypt(originalString);