本文目錄一覽:
mysql數據庫連接密碼的加密方法?
最基本的做法就是使用加密工具,先把字符串加密,之後用配置文件的方法,添加到你的項目中;
然後通過程序的運行,動態的將加密過的字符串進行逆轉操作,恢復成123456,你需要考慮的是,哪種加密方式可以逆反操作,MD5這樣的方式似乎只能進行單向的加密,其實,加密方式也就是一個計算的過程。
希望可以幫助到你~!
誰能簡單介紹下數據庫加密?
一、數據庫加密是什麼?
數據庫加密技術屬於主動防禦機制,可以防止明文存儲引起的數據泄密、突破邊界防護的外部黑客攻擊以及來自於內部高權限用戶的數據竊取,從根本上解決數據庫敏感數據泄漏問題。數據庫加密技術是數據庫安全措施中最頂級的防護手段,也是對技術性要求最高的,產品的穩定性至關重要。
二、數據庫加密的方式有哪些?
目前,不同場景下仍在使用的數據庫加密技術主要有:前置代理加密、應用系統加密、文件系統加密、後置代理加密、表空間加密和磁盤加密等,下文將對前四種數據加密技術原理進行簡要說明。
1、前置代理加密技術
該技術的思路是在數據庫之前增加一道安全代理服務,所有訪問數據庫的行為都必須經過該安全代理服務,在此服務中實現如數據加解密、存取控制等安全策略,安全代理服務通過數據庫的訪問接口實現數據存儲。安全代理服務存在於客戶端應用與數據庫存儲引擎之間,負責完成數據的加解密工作,加密數據存儲在安全代理服務中。
2、應用加密技術
該技術是應用系統通過加密API(JDBC,ODBC,CAPI等)對敏感數據進行加密,將加密數據存儲到數據庫的底層文件中;在進行數據檢索時,將密文數據取回到客戶端,再進行解密,應用系統自行管理密鑰體系。
3、文件系統加解密技術
該技術不與數據庫自身原理融合,只是對數據存儲的載體從操作系統或文件系統層面進行加解密。這種技術通過在操作系統中植入具有一定入侵性的「鉤子」進程,在數據存儲文件被打開的時候進行解密動作,在數據落地的時候執行加密動作,具備基礎加解密能力的同時,能夠根據操作系統用戶或者訪問文件的進程ID進行基本的訪問權限控制。
4、後置代理技術
該技術是使用「視圖」+「觸發器」+「擴展索引」+「外部調用」的方式實現數據加密,同時保證應用完全透明。核心思想是充分利用數據庫自身提供的應用定製擴展能力,分別使用其觸發器擴展能力、索引擴展能力、自定義函數擴展能力以及視圖等技術來滿足數據存儲加密,加密後數據檢索,對應用無縫透明等核心需求。
三、數據庫加密的價值
1、在被拖庫後,避免因明文存儲導致的數據泄露
通常情況下,數據庫中的數據是以明文形式進行存儲和使用的,一旦數據文件或備份磁帶丟失,可能引發嚴重的數據泄露問題;而在拖庫攻擊中,明文存儲的數據對於攻擊者同樣沒有任何秘密可言——如Aul、MyDul等很多成熟的數據庫文件解析軟件,均可對明文存儲的數據文件進行直接分析,並輸出清晰的、結構化的數據,從而導致泄密。
數據庫加密技術可對數據庫中存儲的數據在存儲層進行加密,即使有人想對此類數據文件進行反向解析,所得到的也不過是沒有任何可讀性的「亂碼」,有效避免了因數據文件被拖庫而造成數據泄露的問題,從根本上保證數據的安全。
2、對高權用戶,防範內部竊取數據造成數據泄露
主流商業數據庫系統考慮到初始化和管理的需要,會設置以sys、sa或root為代表的數據庫超級用戶。這些超級用戶天然具備數據訪問、授權和審計的權限,對存儲在數據庫中的所有數據都可以進行無限制的訪問和處理;而在一些大型企業和政府機構中,除系統管理員,以數據分析員、程序員、服務外包人員為代表的其他數據庫用戶,也存在以某種形式、在非業務需要時訪問敏感數據的可能。
數據庫加密技術通常可以提供獨立於數據庫系統自身權限控制體系之外的增強權控能力,由專用的加密系統為數據庫中的敏感數據設置訪問權限,有效限制數據庫超級用戶或其他高權限用戶對敏感數據的訪問行為,保障數據安全。
如何利用MySQL數據庫自帶加密函數進行加密
首先,先介紹下加密函數,PASSWORD(string)函數可以對字符串string進行加密,代碼如下:
SELECT
PASSWORD(‘you’);
如下圖所示:
執行第一步的SQL語句,查詢結果是一串字符串,並且PASSWORD(string)函數加密是不可逆轉,
如下圖所示:
另外一個加密函數MD5(string),主要針對普通的數據進行加密,代碼如下:
SELECT
MD5(‘hai’);
如下圖所示:
最後一個加密函數ENCODE(string,pass),可以使用字符串pass來加密字符串string。首先要創建一個數據庫表t_pass_info,代碼如下:
CREATE
TABLE
t_pass_info(
id
int(10),
pass_info
blob
);
如下圖所示:
然後,向這個數據庫表插入一條數據,代碼如下:
INSERT
INTO
t_pass_info(id,pass_info)
VALUES
(1,ENCODE(‘dong’,’bb’));
如下圖所示:
6
查看插入數據庫表t_pass_info記錄,代碼如下:
SELECT
*
FROM
t_pass_info;
如下圖所示:
7
MySQL自帶還有一個解密函數DECODE(str,pass_str),可以使用字符串pass_str來為str解密,代碼如下:
SELECT
DECODE(ENCODE(‘dong’,’aa’),’aa’);
如下圖所示:
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hk/n/188443.html