资讯专栏INFORMATION COLUMN

application.properties数据库敏感信息加密这么简单?

Lycheeee / 2114人阅读

摘要:前些天就有了一个满足漏洞检测的需求,想要把数据库的明文敏感信息加密,其实也就是密码加密,所以也就有了这篇文章,我的项目是结构,修改其实也挺简单,废话少说,上代码。所以您有什么更好的加密方法欢迎留言

写在前面

俗话说:”顾客是上帝“,身为程序员的我有时会直接对接客户方提出的需求,毕竟我处在提供服务的一方,所以我也会尽量的满足临时的要求。前些天就有了一个满足漏洞检测的需求,想要把数据库的明文敏感信息加密,其实也就是密码加密,所以也就有了这篇文章,我的项目是springboot结构,修改其实也挺简单,废话少说,上代码。

这里使用的是 jasypt,而它是一个java实现的安全框架
1.Maven的pom.xml依赖
 
     com.github.ulisesbocchio
     jasypt-spring-boot-starter
     1.8
 
2.通过测试类验证加密加密

测试类如下

import org.jasypt.encryption.pbe.StandardPBEStringEncryptor;
import org.jasypt.encryption.pbe.config.EnvironmentPBEConfig;

/**
 * Created By charmsongo 21:04 2018/11/30
 */
public class CryptorTest {

    /**
     * 加密方法
     * @param plainText 需加密文本
     */
    public static void testEncrypt(String plainText) {
        StandardPBEStringEncryptor standardPBEStringEncryptor = new StandardPBEStringEncryptor();
        EnvironmentPBEConfig config = new EnvironmentPBEConfig();

        // 加密的算法,这个算法是默认的
        config.setAlgorithm("PBEWithMD5AndDES");
        //加密的密钥,自定义
        config.setPassword("CSEbfYkitulv73I2p0mXI50JMXoaxZTKJ7");
        standardPBEStringEncryptor.setConfig(config);
        String encryptedText = standardPBEStringEncryptor.encrypt(plainText);
        System.out.println(encryptedText);
    }

    /**
     * 解密方法
     * @param encryptedText 需解密文本
     */
    public static void testDecrypt(String encryptedText) {
        StandardPBEStringEncryptor standardPBEStringEncryptor = new StandardPBEStringEncryptor();
        EnvironmentPBEConfig config = new EnvironmentPBEConfig();

        // 解密的算法,需同加密算法相同
        config.setAlgorithm("PBEWithMD5AndDES");
        //解密的密钥,需同加密密钥相同
        config.setPassword("CSEbfYkitulv73I2p0mXI50JMXoaxZTKJ7");
        standardPBEStringEncryptor.setConfig(config);
        String plainText = standardPBEStringEncryptor.decrypt(encryptedText);
        System.out.println(plainText);
    }

    public static void main(String[] args){
        testEncrypt("root");
        testDecrypt("TU1NovjRHGyjp7cSc6v0sQ==");
    }
}

运行main方法结果如下

TU1NovjRHGyjp7cSc6v0sQ==
root
3.application.properties中配置修改
##mysql-----修改前配置
spring.datasource.url=jdbc:mysql://192.168.2.105/mysql?characterEncoding=utf8&useSSL=true
spring.datasource.username=root
spring.datasource.password=root
spring.datasource.driver-class-name=com.mysql.jdbc.Driver

##mysql-----修后前配置
jasypt.encryptor.password=CSEbfYkitulv73I2p0mXI50JMXoaxZTKJ7#引入密钥
spring.datasource.url=jdbc:mysql://192.168.2.105/mysql?characterEncoding=utf8&useSSL=true
spring.datasource.username=root
spring.datasource.password=ENC(TU1NovjRHGyjp7cSc6v0sQ==)
spring.datasource.driver-class-name=com.mysql.jdbc.Driver
使用 jasypt 加密数据库敏感信息的任务现在就可以交工了,但是看完您会发现,这样也不是特别安全的,确实。。。所以您有什么更好的加密方法欢迎留言

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/72516.html

相关文章

  • SpringBoot 入门简介

    摘要:这里使用的是数据库启动类上加上注解在启动类中添加对包扫描扫描多个包下的可以有以下几种方法扫描会自动加载相关配置,数据源就会自动注入到中,会自动注入到中,可以直接使用。有配置文件下的使用扫描多个包下的可以有以下几种方法扫描 Spring-Boot 学习笔记 1 Spring-Boot 介绍 1.1 什么是Spring-Boot Spring-Boot是由Pivotal团队提供的全新框架...

    chuyao 评论0 收藏0
  • Spring Boot 框架介绍和使用

    摘要:使用还是,根据个人喜好即可。如果错误页面也需要使用模板引擎动态生成,那么放在下面的路径。数据库自动配置嵌入式数据库如果类路径中包含或的相应包,那么就会自动配置这些嵌入式数据库的实例和数据源。 本文参考自Spring Boot文档。 Spring Boot 简介 Spring框架功能很强大,但是就算是一个很简单的项目,我们也要配置很多东西。因此就有了Spring Boot框架,它的作用很...

    Zack 评论0 收藏0
  • Spring Cloud 参考文档(Spring Cloud Config Server)

    摘要:,这是标记配置文件集版本化的服务器端特性。要配置对称密钥,需要将设置为秘密字符串或使用环境变量将其排除在纯文本配置文件之外。 Spring Cloud Config Server Spring Cloud Config Server为外部配置提供基于HTTP资源的API(名称—值对或等效的YAML内容),通过使用@EnableConfigServer注解,服务器可嵌入Spring Bo...

    harryhappy 评论0 收藏0
  • Nacos系列:基于Nacos的配置中心

    摘要:杀只鸡而已,你拿牛刀来做甚释义小团队小项目选择简单的配置管理方式就好了,要什么配置中心,纯属没事找事。,我就啰嗦到这里吧,下面正式介绍作为配置中心是怎么使用的。 前言 在看正文之前,我想请你回顾一下自己待过的公司都是怎么管理配置的,我想应该会有以下几种方式: 1、硬编码没有什么配置不配置的,直接写在代码里面,比如使用常量类优势:对开发友好,开发清楚地知道代码需要用到什么配置劣势:涉及秘...

    ralap 评论0 收藏0

发表评论

0条评论

Lycheeee

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<