01 前言
这篇文章是一个小小的练习,对于不熟悉代码的人来说确实是个挑战。在Java Web项目中,如果数据库连接文件中的账号密码没有加密,可能存在安全风险。因此,我们需要使用加密工具类对数据库账号密码进行加密。本项目是以华夏ERP Java Web源码为例,对其数据库连接文件进行加密。通常在黑盒测试中,对代码的理解并不是特别重要,但在白盒测试中,这显得尤为重要。
02 情况描述
未加密状态:
加密后:
03 实现过程
1、引入Pom依赖:
2、编写加密工具类:
由于我们需要获取加密后的密文,首先需要根据原始账号密码和指定的密钥生成加密后的密文。在这里,我们假设本地和测试环境的密钥为”NSFOCUS”。通过上述工具类,我们可以生成如下密文。
3、替换账号密码:
我们将application.properties
文件中的账号密码用上述密文进行替换,使用ENC()
将密文包裹。
04 注意说明:
这里需要注意三点:
- 此时我们还不能正常启动服务,因为账号和密码是错误的。我们需要将密钥传入,让jasypt解析出正确的账号和密码才能进行数据库连接。
- 工具类中的密钥应该与生产环境中的密钥不同。
- 使用
ENC()
包裹密文。
接下来,我们可以通过两种方式将密钥传入程序中使用。一种是通过系统环境变量配置密钥,但这并不是推荐的方式。第二种是通过启动参数传入密钥。在Spring Boot项目的启动参数中,我们增加如下配置:-Djasypt.encryptor.password=NSFOCUS
。然后重新启动应用,就可以成功启动了。
© 版权声明
THE END
暂无评论内容