㈠ 資料庫加密有幾種
mysql資料庫的認證密碼有兩種方式,
mysql
4.1版本之前是mysql323加密,mysql
4.1和之後的版本都是mysqlsha1加密,
mysql資料庫中自帶old_password(str)和password(str)函數,它們均可以在mysql資料庫里進行查詢,前者是mysql323加密,後者是mysqlsha1方式加密。
(1)以mysql323方式加密
select old_password('111111');
(2)以mysqlsha1方式加密
select
password('111111');
mysql323加密中生成的是16位字元串,而在mysqlsha1中生存的是41位字元串,其中*是不加入實際的密碼運算中,通過觀察在很多用戶中都攜帶了"*",在實際破解過程中去掉"*",也就是說mysqlsha1加密的密碼的實際位數是40位。
㈡ 資料庫表可否進行加密為什麼(列出語句解釋)
只研究過某一列進行加密,表怎麼加密沒研究過,比如經常行的,保存用戶密碼的時候,一定要加密後在保存,現在最就行的加密演算法就是md5加密。而且也不明白為什麼要把資料庫表加密,如果表加密了,那麼試圖是否加密?函數是否加密?甚至整個庫是否加密?
㈢ 現在資料庫加密的方式有哪幾種
資料庫加密的方式從最早到現在有4種技術,首先是前置代理加密技術,該技術的思路是在資料庫之前增加一道安全代理服務,所有訪問資料庫的行為都必須經過該安全代理服務,在此服務中實現如數據加解密、存取控制等安全策略,安全代理服務通過資料庫的訪問介面實現數據存儲。安全代理服務存在於客戶端應用與資料庫存儲引擎之間,負責完成數據的加解密工作,加密數據存儲在安全代理服務中。
然後是應用加密技術,該技術是應用系統通過加密API對敏感數據進行加密,將加密數據存儲到資料庫的底層文件中;在進行數據檢索時,將密文數據取回到客戶端,再進行解密,應用系統自行管理密鑰體系。
其次是文件系統加解密技術,該技術不與資料庫自身原理融合,只是對數據存儲的載體從操作系統或文件系統層面進行加解密。這種技術通過在操作系統中植入具有一定入侵性的「鉤子」進程,在數據存儲文件被打開的時候進行解密動作,在數據落地的時候執行加密動作,具備基礎加解密能力的同時,能夠根據操作系統用戶或者訪問文件的進程ID進行基本的訪問許可權控制。
最後後置代理技術,該技術是使用「視圖」+「觸發器」+「擴展索引」+「外部調用」的方式實現數據加密,同時保證應用完全透明。核心思想是充分利用資料庫自身提供的應用定製擴展能力,分別使用其觸發器擴展能力、索引擴展能力、自定義函數擴展能力以及視圖等技術來滿足數據存儲加密,加密後數據檢索,對應用無縫透明等核心需求。安華金和的加密技術在國內是唯一支持TDE的資料庫加密產品廠商。
㈣ 如何將整個資料庫加密
不知道樓主想要的是不是openssl,https。對資料庫加密意義不大吧。
㈤ 資料庫加密與文檔加密的區別是什麼
安華金和做數據安全起家,在加密技術上有自己的見解,我先來說說,你也可以咨詢他們,其實針對文件加密的非資料庫加密產品,基本上是無法用於資料庫加密的,主要原因是打開加密的文件時需要輸入加密密碼,而資料庫在對資料庫文件進行讀寫時是沒有機會輸入密碼的。文件加密的非資料庫加密產品還另外兩個明顯缺陷,對資料庫性能影響較大,不具備針對資料庫用戶的獨立於資料庫原生權控體系的增強型許可權控制能力。要是底層防守的話還是需要上資料庫加密產品~如果認可我的回答,希望能幫忙採納下
㈥ 如何實現對資料庫單個欄位進行加密
插入加密數據:
1、INSERT INTO userdata(username,pasword,encryptedpassword)
2、VALUES ('smith','htims',AES_ENCRYPT('htims','key'))
上面的插入語句有三個欄位,「用戶名」、「密碼」和「加密的密碼」。
AES_ENCRYPT()函數需要一個「key」來協助加密,同樣,解密也需要它。
從表中查詢加密數據
1、SELECT username,pasword,AES_DECRYPT(encryptedpassword,'key')
2、FROM userdata.
㈦ 資料庫如何實現欄位加密
好像沒這東西
你在編程語言中實現把
這種情況我都是用MD5加密
雖然你不想聽理論。。。我也懶得寫代碼。。。
1、把用戶的密碼用MD5改變成32個字元
2、將這字元串寫到資料庫里
3、判斷密碼是否正確的時候,把用戶輸入的密碼在用MD5改變成32個字元、判斷這字元串和資料庫中字元串是否相同
下面是JAVA的MD5用法
import java.security.MessageDigest;
public class MD5 {
private final static String[] hexDigits = { "0", "1", "2", "3", "4", "5",
"6", "7", "8", "9", "a", "b", "c", "d", "e", "f" };
//將位元組數組轉換為十六進制字元串
private static String byteArrayToHexString(byte[] b) {
StringBuffer resultSb = new StringBuffer();
for (int i = 0; i < b.length; i++) {
resultSb.append(byteToHexString(b[i]));
}
return resultSb.toString();
}
//將位元組轉換為十六進制字元
private static String byteToHexString(byte b) {
int n = b;
if (n < 0)
n = 256 + n;
int d1 = n / 16;
int d2 = n % 16;
return hexDigits[d1] + hexDigits[d2];
}
public static String MD5Encode(String origin) {
String resultString = null;
try {
resultString = new String(origin);
//MessageDigest 類為應用程序提供信息摘要演算法的功能,如 MD5 或 SHA 演算法
MessageDigest md = MessageDigest.getInstance("MD5");
resultString = byteArrayToHexString(md.digest(resultString
.getBytes("GBK")));
} catch (Exception ex) {
}
return resultString;
}
public static void main(String[] args)
{
System.out.println(MD5.MD5Encode("admin"));
System.out.println(MD5.MD5Encode("密碼內容"));
}
}
㈧ 怎麼對資料庫已有的數據進行加密
第一層 服務主密鑰 備份服務主密鑰
backup service master key to file='c:\smk.bak'
encryption by password='P@ssw0rd'
restore service master key from file='c:\smk.bak'
decryption by password='P@ssw0rd'
第二層 資料庫主密鑰
1)必須先在該資料庫上創建資料庫主密鑰才能使用
create master key encryption by password='P@ssw0rd'
2)使用資料庫主密鑰
-如果資料庫主密鑰使用服務密鑰進行保護,則在使用時會自動打開
opren master key decryption by password='P@ssw0rd'
3)查看資料庫主密鑰狀態
sys.symmetric_keys
4)備份資料庫主密鑰
backup master key to file='c:\smk.bak'
encryption by password='P@ssw0rd'
restore master key from file='c:\smk.bak'
decryption by password='P@ssw0rd'
㈨ 如何在mysql資料庫中加入加密演算法,使得資料庫能夠對資料庫中的數據進行加密。
沒有用過mysql加密,但一般都是用服務端語言把數據加密後存入資料庫中,比如,在PHP里用md5函數把用戶的密碼加密之後存入數據中,一般都 是這么解決的。
㈩ 資料庫怎麼加密
資料庫加密作為近年來興起的資料庫安防技術,已經被越來越多的人所重視。這種基於存儲層加密的防護方式,不僅可以有效解決資料庫明文存儲引起的泄密風險,也可以防止來自內部或者外部的入侵及越權訪問行為。從技術手段上來看,現今資料庫加密技術主要有三大類,分別是前置代理及加密網關方式、應用層加密方式以及後置代理方式,其中後置代理技術有有兩種不同的技術路線,分別為:基於視圖和觸發器的後置代理技術和基於TDE技術的加密技術。你與安華金和了解下吧,以前他們還專門有過相關文章介紹。