Ⅰ 資料庫里加密的密碼是怎麼實現的
密碼只屬於用戶自己:如果一個用戶在多處使用同一個密碼,因為你得到了他一個應用程序的密碼,結果他的網銀密碼你也知道了,這是不可取的,因此,設計者一般都採用密碼加密功能,甚至是
單向加密,
這樣就是資料庫被破解,用戶的密碼也不會泄露,只有這樣,用戶才能放心地設置自己的密碼!!
Ⅱ 資料庫里加密的密碼是怎麼實現的
一般是先加鹽再用不可逆加密演算法加密密碼的,常見的有:sha1 sha256 md5等。
作用:這些加密演算法,只能加密,不能逆向解密,所以使用這些演算法。即時你的資料庫被拖庫,得到的人,也無法知道用戶密碼。
為什麼加鹽
舉例
在注冊時,
假設你的密碼是1234,一般伺服器會加一個鹽(隨便一個亂打的字元串),和你的密碼加在一起,1234和efnU*(@#H!JKNF得到1234efnU*(@#H!JKNF這個值,然後再進行加密(這里我用md5)得到 ,於是資料庫里你的密碼就變為了
登入時,
你輸入1234, 然後伺服器用和注冊相同的步驟進行加密,得到加密後的值,,將這個值與資料庫的加密值比對,如果正確則登入。
Ⅲ 如何實現資料庫連接的密碼加密
C#中有數據加密的類using System.Security.Cryptography,在這個類中你可以調用它的兩個方法分別是加密方法
public static string Encrypt(string text)
{}
解密方法
public static string Decrypt(string text)
{}
我們一般使用連接資料庫加頌乎洞密的話,都會使用一個配置文件在配置文件野枯中對資料庫鏈接進頃碼行讀寫,通過加密方法把鏈接寫到配置文件,然後讀取的時候再使用解密方法。
Ⅳ 如何實現Tomcat連接池資料庫密碼加密
問題解決思路:
將配置文件用戶相關的信息(例如:密碼)進行加密使其以密文形式存在,進行初始化連接池的時候進行解密操作,達到成功創建連接池的目的。Tomcat默認使用DBCP連接池(基於common-pool的一種連接池實現),可在下載commons-dbcp源碼包commons-dbcp-1.4-src.zip,對org.apache.commons.dbcp.BasicDataSourceFactory類修改,把資料庫密碼欄位(加密後的密文)用解密程序解密,獲得解密後的明文即可。
具體實現:
1. 修改org.apache.commons.dbcp.BasicDataSourceFactory類文件
找到數據源密碼設置部分
value = properties.getProperty(PROP_PASSWORD);
if (value != null) {
dataSource.setPassword(value);
}
修改為:
value = properties.getProperty(PROP_PASSWORD);
if (value != null) {
dataSource.setPassword(Encode.decode(value));
}
將配置文件中的「密碼」(加密後的結果)取出,調用加解密類中的解密方法Encode.decode(value)進行解密。
2. 加密類Encode.java,本例中使用加密解密模塊比較簡單只是用來說明問題,密文為明文的十六進制串。
public class Encode {
//編碼-普通字元串轉為十六進制字元串
public static String encode(String password){
String result = 「」;
byte[] psd = password.getBytes();
for(int i=0;i<psd.length;i++){
result += Integer.toHexString(psd[i]&0xff);
}
return result;
}
//解碼–十六進制字元串轉為普通字元串
public static String decode(String password){
String result = 「」;
password = password.toUpperCase();
int length = password.length() / 2;
char[] hexChars = password.toCharArray();
byte[] d = new byte[length];
for (int i = 0; i < length; i++) {
int pos = i * 2;
d[i] = (byte) (charToByte(hexChars[pos]) << 4 | charToByte(hexChars[pos + 1]));
}
result = new String(d);
return result;
}
//字元轉位元組
public static byte charToByte(char c) {
return (byte) 「0123456789ABCDEF」.indexOf(c);
}
}
3. 資料庫連接池文件,紅色字體為數據源配置中密碼設置,此時已經改為密文形式。
<?xml version=』1.0′ encoding=』utf-8′?>
<Context docBase=」reportmis」 path=」/reportmis」 privileged=」true」 workDir=」work\Catalina\localhost\reportmis」>
<Resource auth=」Container」 name=」mis2datasource」 type=」javax.sql.DataSource」/>
<ResourceParams name=」mis2datasource」>
<parameter>
<name>password</name>
<value>696e65743231</value>
</parameter>
<parameter>
<name>url</name>
<value>jdbc:oracle:thin:@127.0.0.1:1521:orcl</value>
</parameter>
<parameter>
<name>driverClassName</name>
<value>oracle.jdbc.driver.OracleDriver</value>
</parameter>
<parameter>
<name>username</name>
<value>wanfang</value>
</parameter>
</ResourceParams>
</Context>
4. 將修改後的BasicDataSourceFactory.java和新添加的Encode.java編譯後的class類文件重新打包進commons-dbcp-1.4.jar,將該包拷貝進tomcat下的common/lib目錄中,重啟tomcat。此時tomcat下部署的應用在連接數據源的時候都可以在不暴露密碼明文的情況下進行連接。轉載,僅供參考。
Ⅳ MySql、資料庫用戶名、資料庫密碼什麼意思
一、MySql資料庫用戶名,就是你登錄mysql用的名字。
二、密碼就是登錄mysql時用的密碼。
三、資料庫名是你在mysql里建的庫名字。