您好,欢迎来到三六零分类信息网!老站,搜索引擎当天收录,欢迎发信息

SpringBoot如何加密配置文件的SQL账号密码

2024/2/25 1:15:15发布24次查看
1、在maven项目中引入依赖<dependency> <groupid>com.github.ulisesbocchio</groupid> <artifactid>jasypt-spring-boot-starter</artifactid> <version>2.1.0</version></dependency>
2、同时需要在application.yml配置文件中先配置密码因为工具是使用该密码进行加密或者解密的,所以必须保证配置中加密后的串是使用同一密码加密的,否则项目启动时也解密不了。
jasypt: encryptor: password: 123456
3、可以在测试用例中对原信息进行加密,使用方法很简单。简单的demo如下:
@runwith(springrunner.class)@springboottest@webappconfigurationpublic class test { @autowired stringencryptor encryptor; @test public void getpass() { #直接调用加密的方法 string mysql = encryptor.encrypt("mysql-username|mysql-password"); }}
4、最后在配置文件中放入加密后的字符串就行如上面的 “mysql” 串
url: enc(mysql==)username: enc(mysql==)password: enc(mysql=)
注意 enc() 是固定的写法,mysql== 就是你加密后的对应串。
这样就可以假装的把敏感信息加密了,哈哈哈之所以说假装。很多人可能会对这个问题感到困惑,因为加密密码明文存在配置文件中,任何人都可以轻松地解密。
没错,确实是这样。这种加密的方式只能说不能让人眼一下子看出账号密码。
即使对数据进行加密,在hacker获取了你的项目权限后也毫无意义,因为加密只是一种虚假的安全措施。所以做好项目和服务器的安全问题才是最基本的也是最重要的。
ok!ok!ok!
对配置文件进行加密开发的同学们都知道,例如项目依赖的信息,数据库信息一般是保存在配置文件中,而且都是明文,因此需要进行加密处理,今天在这里介绍下jasypt集成springboot加密的配置。
首先,这些都是建立在你的springboot项目是能正常运行的前提下。
第一步:pom文件加入依赖,如图这里提供一个版本
<dependency> <groupid>com.github.ulisesbocchio</groupid> <artifactid>jasypt-spring-boot-starter</artifactid> <version>2.1.0</version></dependency>
第二步:生成密钥找到你本地maven仓库的jasypt的jar包,在该目录下打开cmd命令窗口,如图:
执行
java -cp jasypt-1.9.2.jar org.jasypt.intf.cli.jasyptpbestringencryptioncli input=test password=test algorithm=pbewithmd5anddes
其中input为你的明文密码,这里我演示的是test,password为你的私钥,algorithm这个是一个规则,切勿更改!!!。执行后如图:
简单解释一下,这里的output就是加密之后的密文(密码)。这里提供一下cmd复制文本的办法(因为我一开始也不会cmd复制):鼠标右键标记然后选中你要复制的内容,就可以复制啦。
第三步:springboot配置文件中添加配置,如图
这里我用的是application.yml文件,application.properties文件写成这样:jasypt.encryptor.password=test。
但是真正使用的是启动类中system.setproperty(jasypt.encryptor.password, demo);给这一节点间重新赋值,这样有利于再次保护到私钥,(如果哪位有更好的方案,请及时留言,大家一起讨论讨论。)
说明:上图第一个password对应第二步中arguements中的password,第二个password对应第二步中output中的结果,形式一定要加上enc(you password),如图所示。
第四步:通过命令解密密码执行命令
java -cp jasypt-1.9.2.jar org.jasypt.intf.cli.jasyptpbestringdecryptioncli input=nhyl4czsqv/apxoe7tzpoq== password=test algorithm=pbewithmd5anddes
结果如下图:
在最后,springboot和jasypt的整合就完成了,看来实现起来相当容易呀,呵呵。不过有一点要注意哦,千万不要泄露你的配置文件哦(特别是arguments里面的password,这个相当于私钥),不然别人可以通过第四步解密你的密码,建议还是把配置文件放在配置中心
以上就是springboot如何加密配置文件的sql账号密码的详细内容。
该用户其它信息

VIP推荐

免费发布信息,免费发布B2B信息网站平台 - 三六零分类信息网 沪ICP备09012988号-2
企业名录 Product