Jasypt 和非对称加密

Jasypt and asymmetric encryption

我想使用 Jasypt 库通过 EncryptablePropertyPlaceholderConfigurer class 解密 Spring 中的属性。我想 encrypt/decrypt 这些属性使用非对称 public/private 密钥方法。

您能否确认 Jasypt 是否支持它(开箱即用或可能使用 JCE)?如果没有,是否还有其他图书馆在做(同时提供 spring 集成和非对称 public/private 密钥方法)?

我不知道 Jasypt,但非对称加密不适合加密大于其密钥大小的数据。任何图书馆都不太可能使用非对称算法提供完全加密。这不是非对称加密的目的。

通常您使用非对称加密(例如 RSA)共享对称密钥(例如 AES)。

最后,我使用了以下解决方案。也许有人会发现它很有用。

  1. 写了一个简单的帮助程序 class 使用 RSA 解密数据(您可以找到如何做到这一点 here
  2. 实现了我自己的 PropertyPlaceholderConfigurer class 版本,方法是扩展原始版本 (org.springframework.beans.factory.config.PropertyPlaceholderConfigurer) 并调用助手 class 来解码数据,每当加密 属性值被发现。

支持非对称加密。您可以使用这些命令生成私钥和 public 密钥

openssl genpkey -out zisky.pem -algorithm RSA -pkeyopt rsa_keygen_bits:2048<br>
openssl rsa -in zisky.pem -pubout > zisky.pub

添加这些属性:

jasypt.encryptor.privateKeyFormat=PEM<br>
jasypt.encryptor.privateKeyLocation=classpath:my_example.pem

使用版本 3.0.3。