网站优化名词解释,wordpress static page,门户网站群建设,给女朋友做网站如何使用 Jasypt 加密 Spring Boot 项目中的密码 在本文中#xff0c;我们将学习如何加密 Spring Boot 应用程序配置文件#xff08;如 application.properties 或 application.yml#xff09;中的数据。在这些文件中#xff0c;我们可以加密用户名、密码等。
您经常会遇到…如何使用 Jasypt 加密 Spring Boot 项目中的密码 在本文中我们将学习如何加密 Spring Boot 应用程序配置文件如 application.properties 或 application.yml中的数据。在这些文件中我们可以加密用户名、密码等。
您经常会遇到开发项目需要连接到 MongoDB等数据库并将数据库连接的真实密码存储在 Spring Boot 项目的配置文件application.yml 或 application.properties中。甚至授权进行其他 API 调用所需的密码或令牌也以相同的方式存储。您实际上可以避免在配置文件中添加实际密码并使用Java 库jasypt-spring-boot 。
Jasypt 是什么
Jasypt Java 简化加密为 Spring Boot 应用程序中的属性源提供加密支持。它将帮助您以极少的努力为您的项目添加基本的加密功能并且无需编写任何代码只需在您的项目中进行一些添加即可。Springboot 是一个非常强大的框架它将帮助您添加加密功能而无需实现任何加密方法。Jasypt 具有高度可配置性。
使用 Jasypt 添加加密的步骤
步骤1添加Jasypt的Maven依赖第 2 步在 Spring Boot 应用程序主配置中添加EnableEncryptableProperties注释步骤3选择加密和解密的密钥步骤 4生成加密密钥步骤 5在配置文件中添加加密密钥步骤6运行时需要解密密钥步骤 7运行应用程序。
步骤1添加Jasypt的maven依赖
在 pom.xml 文件中添加 maven 依赖项该依赖项可以在 maven 存储库中轻松找到。 您可以使用以下依赖项作为参考
dependency groupIdcom.github.ulisesbocchio/groupId artifactIdjasypt-spring-boot-starter/artifactId
version2.0.0/version
/dependency
对于 Maven 插件依赖项您可以使用以下依赖项
pluginsplugingroupIdgithub.ulisesbocchio/groupIdartifactIdjasypt-maven-plugin/artifactId/plugin
/plugins
第 2 步在 Spring Boot 应用程序主配置类中添加注释 需要添加EnableEncryptableProperties注释以使应用程序了解整个Spring环境中的可加密属性。
EnableEncryptableProperties
public class MyProject{//write the code here
}
步骤3选择加密和解密的密钥
密钥用于加密密码之后可用于解密加密值以获取实际密码。您可以选择任何值作为密钥。
步骤4生成加密密钥
加密密钥可以通过以下两种方法生成
使用 Jasypt 在线工具此 link 可用于通过传递所选密钥来生成加密密钥。 您实际上可以使用该工具加密并通过解密来检查加密密钥。 加密密码abcd1234选择加密类型 双向加密默认使用PBEWithMD5AndDES密钥你好可以是任意值加密字符串kNuS1WAezYE7cph7zXVTiPSQSdHTx7Kv
使用 jasypt Jar 从 maven 仓库下载 jasypt jar 文件并通过以下命令运行
java -cp //jasypt-1.9.3/lib/jasypt-1.9.3.jar org.jasypt.intf.cli.JasyptPBEStringEncryptionCLI input”xyz123″
passwordsecretkey algorithmPBEWithMD5AndDES 以下是运行jar时传递的命令行参数的意义
输入abcd1234需要加密的实际密码密码hello您选择的密钥算法PBEWithMD5AndDES使用默认算法输出scEjemHosjc/hjA8saT7Y6uC65bs0swg输入的加密值
注意虽然 3.1 和 3.2 中的加密值即加密字符串和输出不同但由于密钥相同因此两种情况下解密都会产生相同的值abcd1234。
步骤 5在配置文件application.yml 或 application.properties中添加加密密钥
现在您无需像上面那样添加实际密码例如“abcd1234”而是需要添加通过上述任一方法生成的加密值。但是 jasypt 依赖项如何理解配置文件的特定属性需要解密因此为了让 Jasypt 知道您的加密值它使用了一种约定您需要按照以下格式添加它
注 ENC加密密钥ENC(scEjemHosjc/hjA8saT7Y6uC65bs0swg) 在上图中数据库密码的加密已完成。你可以在任何需要隐藏实际密码的场景中使用它。
步骤 6运行时需要解密密钥
让 Jasypt 知道您用来形成加密值的密钥。因此以下是传递密钥的不同方法
将其作为配置文件中的属性传递。照常运行项目解密就会发生。 步骤 7运行应用程序
现在使用以下命令运行该应用程序
$ mvn-Djasypt.encryptor.passwordsecretkey spring-boot:run
导出Jasypt加密器密码
JASYPT_ENCRYPTOR_PASSWORDhello