开发者

Springboot配置文件加密方式

目录
  • 一、jasypt
  • 二、使用步骤
    • 1.引入依赖
    • 2.生成密钥
    • 3.idea启动添加环境变量
    • 4.linux环境启动
  • 报错
    • 总结

      前面叙述了数据传递过程中的加密,需要使用到aop对result和request进行加密和解密。

      现在需要对服务器的中间件进行保护设置,在配置文件中尽量不要暴露出来服务器件的密码账号。

      需要对配置文件进行加密处理。

      一、jasypt

      jasypt是专门加密各种配置文件的依赖包

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

      jasypt有多种版本,并且包之间的依赖问题比较多

      二、使用步骤

      1.引入依赖

      添加配置

      如下(yml配置):

      jasypt:
        encryptor:
          algorithm: PBEWithMD5AndDES		#算法-固定写法一般没人改
          password: 1234qwer
          iv-generator-classname: org.jasypt.iv.NoIvGenerator	#设置初始向量IV生成器的类名
      

      2.生成密钥

      使用代码生成密钥

      public class JasyptUtil {
      
          /**
          * 加密方法
          * @param salt 盐值
          * @param targetString 待加密字符串
          * @return 密文
          */
          public static String encrypt(String salt, String targetString) {
              BasicTextEncryptor encryptor = new BasicTextEncryptor();
              encryptor.setPassword(salt);
              return encryptor.encrypt(targetString);
          }
      
          /**
          * 解密方法
          * @param salt 盐值
          * @param targetString 待解密字符串
          * @return 明文
          */
          public static String decrypt(String salt,String targetString) {
              BasicTextEncryptor encryptor = new BasicTextEncryptor();
              encryptor.setPassword(salt);
              return encryptor.decrypt(targetString);
          }
      
          public static void main(String[] args) {
      编程        String salt = "1234qwer";
              String password = "xxxxx";
              // 进行加密操作
              String encryptString1 = encrypt(salt, password);
              // 进行解密操作
              Strinhttp://www.devze.comg decryptString1 = decrypt(salt, encryptString1);
              // 输出明文和密文
              System.out.println("encryptString1="+encryptString1);
              System.out.println("decryptString1="+decryptString1);
          }
      }
      

      使用jar包生成密钥

      Java -cp D:\repository\org\jasypt\jasypt\1.9.3\jasypt-1.9.3.jar org.jasypt.intf.cli.JasyptPBEStringEncryptionCLI input="xxxxx" password=1234qwer algorithm=PBEWithMD5AndDES
      

      在yml配置文件中修改密钥:

      password: ENC(KMMwXkYtccOvU+mMOXXojP7Tif1Ja9fN)

      ENC是jASPty中默认的,可以设置配置项自定编程客栈义设置

      3.idea启动添加环境变量

      在idea中设置启动项configuration,添加环境变量

      Springboot配置文件加密方式

      4.linux环境启动

      javascript
      nohup http://www.devze.comjava -Djasypt.encrypt.password=1234qwer  -jar xxxxx.jar > nohup.log &
      

      报错

      版本问题,解决冲突

      如果错误信息是缺少jce安全插件,那么需要下载jce_policy-8的zip包去放入到JDK下的jre/lib/security下

      总结

      以上为个人经验,希望能给大家一个参考,也希望大家多多支持编程客栈(www.devze.com)。

      0

      上一篇:

      下一篇:

      精彩评论

      暂无评论...
      验证码 换一张
      取 消

      最新开发

      开发排行榜