展开
拓展 关闭
订阅号推广码
GitHub
视频
公告栏 关闭

数据安全保护

@RestController
@RequestMapping("/priv")
public class PrivController {

    /**
     * 加密
     * @return
     */
    @RequestMapping("/test")
    @ResponseBody
    public String test(){
        String username = "root";
        String password = "123456";
        String url = "jdbc:mysql://123.456.789:3306/dbtest?characterEncoding=utf-8&useSSL=false";
        // 生成 16 位随机 AES 密钥
        String randomKey = AES.generateRandomKey();
        // 随机密钥加密
        String u1 = AES.encrypt(username, randomKey);
        String p1 = AES.encrypt(password, randomKey);
        String u2 = AES.encrypt(url, randomKey);
        return randomKey + "----->" + u1 + "----->" + p1 + "----->" + u2;
    }

}
  • 获取加密数据
5293ddac6f8c327f----->1HCzw/UUT+4vUw2cz0eCNg==----->/59gLNkQBhJhNyTUP++S9Q==----->+FEpwLQBHHkHGSaG4QXl17v+vD0ileafcMUgEY0oiRiYEHe6gq+w8NOT32JJgyYzJ+QaqSFQ8GT4LtjlyGFQ46JAWzoHOrHFPiXYOqm8nQQ=
  • 配置yml文件:需要以mpw开头
spring:
  datasource:
    driver-class-name: com.mysql.cj.jdbc.Driver
    username: mpw:1HCzw/UUT+4vUw2cz0eCNg==
    password: mpw:/59gLNkQBhJhNyTUP++S9Q==
    url: mpw:+FEpwLQBHHkHGSaG4QXl17v+vD0ileafcMUgEY0oiRiYEHe6gq+w8NOT32JJgyYzJ+QaqSFQ8GT4LtjlyGFQ46JAWzoHOrHFPiXYOqm8nQQ=
  • 将项目打成jar包后,使用cmd进入jar所在文件夹:启动jar包,mpw.key为生成的 16 位随机 AES 密钥
C:\work\github\mybatis-case-repo\02\demo13\demo01\target>java -jar demo01-0.0.1-SNAPSHOT.jar --mpw.key=5293ddac6f8c327f

  .   ____          _            __ _ _
 /\\ / ___'_ __ _ _(_)_ __  __ _ \ \ \ \
( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \
 \\/  ___)| |_)| | | | | || (_| |  ) ) ) )
  '  |____| .__|_| |_|_| |_\__, | / / / /
 =========|_|==============|___/=/_/_/_/
 :: Spring Boot ::                (v2.6.3)

 _ _   |_  _ _|_. ___ _ |    _
| | |\/|_)(_| | |_\  |_)||_|_\
     /               |
                        3.4.0
  • 访问接口测试,当控制台出现sql语句,说明配置成功
  • 数据安全保护通常使用在生产环境中
  • 生成的16为随机密钥掌握在少数人手中
posted @ 2022-07-20 14:14  DogLeftover  阅读(23)  评论(0编辑  收藏  举报