欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

springboot项目配置加密,项目安全

程序员文章站 2024-01-09 17:53:52
...

出于安全起见,我们会对项目中application.preperties文件配置的内容加密。并且尽量将springboot框架升级到高版本(稳定版本)

将springboot框架从1.4.5升级到2.2.4以后。起初使用的jasypt3.0.1的工具给项目内容加密。

顺便在这里给大家介绍一个js代码加密的网站:http://tool.chinaz.com/js.aspx。使用加密压缩以后的代码替换原来js文件里面的js脚本代码即可。本人测试可行。

jasypt3.0.1加密方法:

1. 将jasypt工具包导入,并且增加maven自动加密工具。

<dependency>
        <groupId>com.github.ulisesbocchio</groupId>
        <artifactId>jasypt-spring-boot-starter</artifactId>
        <version>3.0.1</version>
</dependency>

<build>
  <plugins>
    <plugin>
      <groupId>com.github.ulisesbocchio</groupId>
      <artifactId>jasypt-maven-plugin</artifactId>
      <version>3.0.0</version>
    </plugin>
  </plugins>
</build>

2. 将application.preperties中需要加密的内容用DEC(加密内容)包裹。

     如:spring.thymeleaf.prefix=DEC(classpath:/templates/)

3. 然后使用idea打开项目目录下的命令行,执行命令,其中password对应的字符串jiami就是我们的钥匙:

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

 如果出现一些jar包报错的话,就到pom.xml文件中,将所有报错的jar包全部注释起来!阿里的jar包几乎都会报错!

4. 成功执行上面命令以后,将pom.xml中注释掉的阿里的jar包全部放开注释。这时候你会发现application.preperties文件中的DEC(classpath:/templates)已经变成ENC(*******密文***)

5.上面说明我们加密成功了,但是还无法启动,所以我们要将钥匙放到项目启动文件:

在启动文件main方法内增加钥匙:

System.setProperty("jasypt.encryptor.password", "jiami");

或者在配置文件application.perperties文件中增加钥匙配置:

jasypt.encryptor.password=jiami

6.启动项目,为了安全,我们再启动项目以后进入配置钥匙的类或文件中,将我们增加的钥匙内容删除掉,不会影响项目正常运行。

注意:本人实战发现jasypt3.0.0工具不是太稳定。有时候项目运行运行的会出现无法解密启动项目的问题。就需要重新加密。

使用:jasypt2.0.0版本的工具加密。

直接在启动类增加代码:

        BasicTextEncryptor textEncryptor = new BasicTextEncryptor();
        //加密所需的salt(盐)
        textEncryptor.setPassword("jiami");
        //要加密的数据(数据库的用户名或密码)
        String url = textEncryptor.encrypt("数据库链接");
        String username = textEncryptor.encrypt("root");
        String password = textEncryptor.encrypt("123123");
        System.out.println("url:"+url);
        System.out.println("username:"+username);
        System.out.println("password:"+password);

将打印出来的加密内容加上ENC如:ENC(加密后的内容),替换掉application.preperties的内容,并且在其中增加jasypt.encryptor.password=jiami。就可以了。

记得启动以后删除jasypt.encryptor.password=jiami这段内容哦!

通过加密后,我们可以防止数据库连接、数据库密码等外泄。同时再在阿里云安全组中配置指定IP方可连接数据库端口。让数据库安全得到保障。

云端服务器其实很难防住黑客进入我们的服务器,我们能做到的就是让他白跑一趟。像关于支付的秘钥、证书路径之内的机密内容,建议放到数据库,用的时候从数据库拿就行。放在项目代码中是很不安全的。

相关标签: spingboot