1. 首页 » 生活常识

文档加密设置指南:轻松掌握配置文件加密方法

应用场景

随着互联网的不断发展,信息安全越来越被人们所重视,各个公司对一些敏感信息的加密要求也越来越高,最近小编的公司就要求项目配置文件里不能出现明文密码,要求对配置文件里出现的用户名密码进行加密处理,小编使用了jasypt轻松搞定,在这里也推荐给大家!

使用方式

pom文件里引入依赖


    com.github.ulisesbocchio
    jasypt-spring-boot-starter
    2.1.1

application.properties配置文件里添加密钥

jasypt.encryptor.password=CSEbfabcctulv73I2dsssCTTJMXoaxZTKJ7
jasypt.encryptor.algorithm=PBEWithMD5AndDES

创建测试类ApiController,对外提供加密,解密方法

package com.lyj.properties.encrypt.controller;

import org.jasypt.encryption.StringEncryptor;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;

import java.util.HashMap;
import java.util.Map;

@RestController
public class ApiController {

    @Autowired
    StringEncryptor encryptor;

    @Value("${username}")
    private String username;

    @Value("${password}")
    private String password;

    /**
     * 解密
     * @author: liyajie
     * @date: 2022/1/12 10:27
     * @param
     * @return java.util.List>
     * @exception:
     * @update:
     * @updatePerson:
     **/
    @GetMapping("/getUsernameAndPassword")
    public Map getUsernameAndPassword(){
        Map map = new HashMap();
        map.put("解密后username",username);
        map.put("解密后password",password);
        return map;
    }

    /**
     * 加密
     * @author: liyajie
     * @date: 2022/1/12 10:27
     * @param
     * @return java.util.Map
     * @exception:
     * @update:
     * @updatePerson:
     **/
    @GetMapping("/setUsernameAndPassword")
    public Map setUsernameAndPassword(String username, String password){
        Map map = new HashMap();
        map.put("加密后username",encryptor.encrypt(username));
        map.put("加密后password",encryptor.encrypt(password));
        return map;
    }
}

测试

加密

配置文件加密无从下手——jasypt帮你轻松搞定

将加密后的用户名密码添加到配置文件中

username=ENC(H8W+D5hYuGkMNJEXOz/tdQ==)
password=ENC(JOyjEvb1yc0IOnKc39ynGQ==)

请求解密接口(其实是自动解密的),获取解密后的用户名和密码

配置文件加密无从下手——jasypt帮你轻松搞定

这里解密后的username为啥是86177,而不是lyj?

解决方法: 将配置文件里的配置项的变量名称修改为其他的名字(只要不是username就可以),例如:

newUsername=ENC(H8W+D5hYuGkMNJEXOz/tdQ==)
password=ENC(JOyjEvb1yc0IOnKc39ynGQ==)

再次请求就正常了

配置文件加密无从下手——jasypt帮你轻松搞定

注意点

配置项名称不要定义为username,否则解密后为86177由于密钥也是写在配置文件里,所以为了更安全,密钥可以放在启动脚本或者环境变量里

如需获取源码,请关注后,私信小编,非常感谢

声明:本文由"麦兜"发布,不代表"破站"立场,转载联系作者并注明出处:https://www.848586.cn/191934.html