在很多專案中,資料庫相關的配置檔案內容都是以明文的形式展示的,這存在一定的安全隱患。
在開發和維護專案時,不僅要關注專案的效能,同時也要注重其安全性。
我們都知道專案啟動時,spring 容器會載入配置檔案並讀取檔案中的內容,那麼我們可以下邊步驟操作:
1) 通過 des 演算法加密連線資料庫的賬號和密碼並將加密後的密文寫到 db 配置檔案中。
2) 在 spring 讀取 db 配置檔案時將密文解密回明文。
desutil 類:
12
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
publicclass
desutil
catch (exception e)
}
/** * 加密
* @param str
* @return
*/ public
static string getencryptstring
(string str)
catch (exception e)
}
/** * 解密
* @param str
* @return
*/ public
static string getdecryptstring
(string str)
catch (exception e)
}
}
通過上邊的工具類對連線資料庫的賬號密碼進行加密。筆者主機上連線資料庫的賬號和密碼分別是 「root」 和 「tiger」。
經過加密後得到 「wnplv/ietfq=」 和 「xyheykqvhqa=」 。
db.properties 配置檔案完整內容如下:
12
3
4
jdbc.driver=com.mysql.jdbc.driverjdbc.url=jdbc:mysql:
jdbc.username=wnplv/ietfq=
jdbc.password=xyheykqvhqa=
encryptpropertyplaceholderconfigurer 類:
12
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
publicclass
encryptpropertyplaceholderconfigurer
extends
propertyplaceholderconfigurer
;
@override
protected string convertproperty
(string propertyname, string propertyvalue)
else
}
private
boolean
isencryptprop
(string propertyname)
return
false;
}
}
12
3
4
5
6
7
8
9
10
class="com.light.ac.common.configuration.encryptpropertyplaceholderconfigurer">
name="locations">
classpath:db.properties
value>
list>
property>
name="fileencoding"
value="utf-8"/>
bean>
未加密明文前,使用的是 載入 db 配置檔案。
加密明文後,使用配置檔案解析類載入 db 配置檔案。
完成上述 3 個步驟後按照往常操作,直接執行專案即可。
起初,在不了解實現思路前覺得這功能很神秘和高大尚。但是,理清思路後功能實現起來就非常簡單了。
作為程式設計師不能被神秘的表象驚嘆而「望而卻步」,需要學會思考和理清思路,這樣才能不斷提公升自身能力。
java安全之加密技術
主要有 對稱加密演算法,基礎加密演算法,非對稱加密演算法。只有乙個金鑰key進行加密解密,可以逆向加解密。古代有名的加密演算法,將加密的資料進行一定的以為,屬於對稱加密,金鑰key 2 int 值 這種加密非常簡單,只需要對相應的明文移位就得到了加密後的密文,如 明文為abc,key 2 移2位 那...
資料庫安全 Oracle資料庫防火牆技術
oracle資料庫防火牆技術是甲骨文探索出的一種先進的資料庫縱深防禦體系,提供的系列資料庫安全產品能夠在資料加密和遮蔽的基礎上,實行訪問控制,並實時監控整個資料環境裡的活動,實現立體化的資料保護。oracle資料庫防火牆基於網路的安全軟體監控資訊流,使oracle和非oracle資料庫免於攻擊。它圍...
資料庫安全
先分3點從全域性來看 對作業系統的安全需求 防止對dbms的非法訪問和修改,保護儲存的資料 檔案的安全性,對資料庫使用者的認證 對資料庫系統本身的安全需求 使用者認證管理 訪問控制 審計,資料庫的穩定性,保證資料的安全性與完整性,完善的恢復功能,資料加密 對資料庫應用系統的安全需求 訪問控制 認證管...