数据库连接用户名和密码加密
我們的工程項(xiàng)目往往是使用云數(shù)據(jù)庫(kù)的,連接使用賬號(hào)密碼就行了,但是程序里直接有密碼是十分不安全的
這里我參考了別人的博客對(duì)這個(gè)問(wèn)題進(jìn)行解決
1. 需求背景
我們?cè)陂_(kāi)發(fā)應(yīng)用時(shí),需要連接數(shù)據(jù)庫(kù),一般把數(shù)據(jù)庫(kù)信息放在一個(gè)屬性配置文件中,比如java的mysql連接往往是這樣
jdbc.properties的代碼
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;隔著屏幕就感覺(jué)到了不安全,即使你對(duì)用戶(hù)給定了其訪(fǎng)問(wèn)用戶(hù)表的權(quán)限,但是人家一脫庫(kù)這些東西全都被盜走可就太秀了
用戶(hù)表的數(shù)據(jù)我們都不明文明文存儲(chǔ),何況這個(gè)更敏感的服務(wù)器信息呢,同樣還是加密處理
2. 實(shí)現(xiàn)原理
實(shí)現(xiàn)原理其實(shí)很簡(jiǎn)單,配置文件存儲(chǔ)加密后的用戶(hù)名和密碼,重寫(xiě)Druid數(shù)據(jù)源的兩個(gè)方法setUsername(String username)和setPassword(String password)對(duì)信息解密。
3. 實(shí)現(xiàn)方式
3.1 寫(xiě)加密工具
首先得有一個(gè)加密工具,具有加解密功能,這里為了方便直接使用Druid中的工具類(lèi)com.alibaba.druid.filter.config.ConfigTools。使用其中的encrypt(String plainText)方法和decrypt(String cipherText)方法采用默認(rèn)的公私玥加解密。
3.2 加密配置文件
僅需將username和密碼換為自己加密過(guò)的就好
?
轉(zhuǎn)載于:https://www.cnblogs.com/BobHuang/p/11077049.html
總結(jié)
以上是生活随笔為你收集整理的数据库连接用户名和密码加密的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: python工具-文件及文件夹移动及处理
- 下一篇: 背完这444句英语,你的口语绝对不成问题