spring数据库密码加密,springboot实现用户密码加密

  spring数据库密码加密,springboot实现用户密码加密

  00-1010加密配置文件的SQL帐户密码。1.将依赖关系引入Maven项目。2.同时需要先在application.yml配置文件中配置密码。3.您可以使用测试用例。4.最后,只需将加密的字符串放入配置文件中即可对配置文件进行加密。步骤1:将依赖项添加到pom文件中,如图2所示:生成密钥。步骤3:将配置添加到springboot配置文件中,如图4所示:使用命令。

  00-1010一般项目的配置文件中的信息都是明文的,导致有时候比较敏感的信息直接暴露出来,超级明显,比如SQL的链接账号密码等。

  可能作为开发者,开发环境暴露没多大关系,但是生产环境需要谨慎!

  话不多说,可以选择国外牛人写的SpringBoot的工具jasypt进行加密。该项目是开源的。

  Github地址如下:https://github.com/ulisesbocchio/jasypt-spring-boot

  

目录

依赖关系groupIdcom.github.ulisesbocchio/groupId artifactId jas ypt-spring-boot-starter/artifactId版本2.1.0/version/dependency

 

  00-1010由于工具使用该密码进行加密或解密,因此需要确保配置中的加密字符串使用相同的密码进行加密,否则在项目启动时将无法解密。

  jasypt:加密器:密码: 123456

  00-1010加密原始信息。使用方法很简单。简单的演示如下:

  @ run with(spring runner . class)@ spring boot Test @ web appconfiguration public class Test { @ auto wired string encryptor encryptor;@Test public void getPass() {#直接调用加密方法字符串MySQL=encryptor . encrypt( MySQL-username MySQL-password );}}

  00-1010如上“mysql”字符串

  URL :ENC (mysql==)用户名3360ENC (mysql==)密码3360ENC (mysql=)注意ENC()是固定的写法,mysql==是你加密后对应的字符串。

  所以可以假装加密敏感信息,哈哈哈说假装。很多人可能会有疑问。因为加密的密码在配置文件中是明文的,所以其他人可以很容易地解密它。

  是的,它是。这种加密方式只能说不能让人一下子看到账号密码。

  这只是一种伪装。如果hacker获得了你的项目许可,那么做任何加密都没有用。所以做好项目和服务器的安全是最基本最重要的。

  好吧!好吧!好吧!

  

加密配置文件的SQL账号密码

开发的同学都知道,比如项目所依赖的信息,数据库信息一般都保存在配置文件中,而且都是明文的,所以需要加密。今天这里是jasypt集成springboot加密的配置。

 

  首先,这些都是建立在你的springboot项目能够正常运行的前提下。

  00-1010此处提供一个版本。

  依赖关系groupIdcom.github.ulisesbocchio/groupId artifactId jas ypt-spring-boot-starter/artifactId版本2.1.0/version/dependency

  r">

  

 

  

第二步:生成密钥

找到你本地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,这个相当于私钥),不然别人可以通过第四步解密你的密码,建议还是把配置文件放在配置中心

  百度的disconfhttps://github.com/knightliao/disconf有兴趣的同学可以去研究一下。

  以上为个人经验,希望能给大家一个参考,也希望大家多多支持盛行IT。

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: