架构小白到砖家-13-【密码安全问题】-springboot整合druid加密

应用不光保障功能完整性就可以了,还需要保障信息安全,所以我们还需要关注如何隐藏应用敏感信息的问题。数据库的账号密码就是这种信息,我们需要对其进行加密处理。正好druid又提供了非常好用的加密方案,让我们来看看如何使用吧。

我们首先需要补充点加密的概念,加密有两种方式(对称加密和非对称加密),对称加密就是一个秘钥进行加密和解密;非对称加密是一个秘钥对,分为私钥解密,公钥加密。显然非对称加密要更加安全,只给用户公钥。druid采用的是非对称加密。

有了加密概念,我们就开始研究怎么使用druid对密码进行加密。简单点,就干两件事情。
第一,生成秘钥对,并对密码进行加密;

	@Test
	public void test() throws Exception{
		//密码
	    String password = "123456";	     
	    System.out.println("加密前的密码:"+password);
	    
	    //生成秘钥对
	    String [] keyPair = ConfigTools.genKeyPair(512);
	    //私钥
	    String privateKey = keyPair[0];
	    //公钥
	    String publicKey = keyPair[1];
	    
	    //用私钥加密后的密文
	    password = ConfigTools.encrypt(privateKey, password);
	 
	    System.out.println("privateKey:"+privateKey);
	    System.out.println("publicKey:"+publicKey);
	    System.out.println("加密后的密码:"+password);  
	    String decryptPassword=ConfigTools.decrypt(publicKey, password);
	    System.out.println("解密后的密码:"+decryptPassword);
	}

在这里插入图片描述

第二,修改配置文件,配置公钥,打开加密设置。
在这里插入图片描述

# 配置监控统计拦截的filters,去掉后监控界面sql无法统计,'wall'用于防火墙 
spring.datasource.filters=stat,wall,log4j,config
# 通过connectProperties属性来打开mergeSql功能;慢SQL记录
spring.datasource.connectionProperties=druid.stat.mergeSql=true;druid.stat.slowSqlMillis=5000;config.decrypt=true;config.decrypt.key=${app.datasource.publickey}
# 合并多个DruidDataSource的监控数据
spring.datasource.useGlobalDataSourceStat=true
# 公钥
app.datasource.publickey=MFwwDQYJKoZIhvcNAQEBB

然后将密码替换成加密后的密码,就大功告成了。

回顾总结,虽然加密整合的步骤非常简单,但是信息安全的意义确实巨大的,后续咱们还会利用这个加密机制,应用到更多的信息安全场景。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值