微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

数据库连接用户名和密码加密

我们的工程项目往往是使用云数据库的,连接使用账号密码就行了,但是程序里直接有密码是十分不安全的

这里我参考了别人的博客对这个问题进行解决

1. 需求背景

我们在开发应用时,需要连接数据库,一般把数据库信息放在一个属性配置文件中,比如java的MysqL连接往往是这样

jdbc.url=jdbc\:MysqL\://127.0.0.1/messageboards
jdbc.username=root
jdbc.password=root

 C#连接oracle的代码

Data Source=(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=139.196.213.70)(PORT=1521))(CONNECT_DATA=(SERVICE_NAME=Orcl)));Persist Security Info=True;User ID=scott;Password=tiger;

隔着屏幕就感觉到了不安全,即使你对用户给定了其访问用户表的权限,但是人家一脱库这些东西全都被盗走可就太秀了

用户表的数据我们都不明文明文存储,何况这个更敏感的服务器信息呢,同样还是加密处理

2. 实现原理

实现原理其实很简单,配置文件存储加密后的用户名密码,重写Druid数据源的两个方法setUsername(String username)和setPassword(String password)对信息解密。

3. 实现方式
3.1 写加密工具
首先得有一个加密工具,具有加解密功能,这里为了方便直接使用Druid中的工具类com.alibaba.druid.filter.config.ConfigTools。使用其中的encrypt(String plainText)方法和decrypt(String cipherText)方法采用认的公私玥加解密。

3.2 加密配置文件
仅需将username和密码换为自己加密过的就好

 

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐