使用 jasypt 时,如何将加密值放入我的配置中?

问题描述

我有一个 Spring Boot 项目,需要对 application.properties 中的一些属性进行加密。我试过使用 jasypt,但很快就遇到了一个问题:如何加密属性以放入配置?我找到了一些可以让我加密和解密的网页,但他们使用旧算法而不是新的认 PBEWITHHMACSHA512ANDAES_256。

解决方法

您可以使用 mvn 命令将加密值获取到您的配置文件中。

例如,如果您想加密值 mySecret,请将值作为属性放置在 application.properties 文件中,括在方括号内并以 DEC 为前缀。

secret.property.example.value=DEC(mySecret)

现在通过指定密码使用 mvn 运行 encrypt 命令。

mvn jasypt:encrypt -Djasypt.encryptor.password="myPassword"

运行上述命令将生成加密的秘密值并将其存储在属性文件中。你的价值看起来像这样

secret.property.example.value=ENC(mySecretEncrypted)

你可以通过@Value注解直接读取应用中的值,你得到的字符串已经被解密了。