① 資料庫里加密的密碼是怎麼實現的
一般是先加鹽再用不可逆加密演算法加密密碼的,常見的有:sha1 sha256 md5等。
作用:這些加密演算法,只能加密,不能逆向解密,所以使用這些演算法。即時你的資料庫被拖庫,得到的人,也無法知道用戶密碼。
為什麼加鹽
舉例
在注冊時,
假設你的密碼是1234,一般伺服器會加一個鹽(隨便一個亂打的字元串),和你的密碼加在一起,1234和efnU*(@#H!JKNF得到1234efnU*(@#H!JKNF這個值,然後再進行加密(這里我用md5)得到 ,於是資料庫里你的密碼就變為了
登入時,
你輸入1234, 然後伺服器用和注冊相同的步驟進行加密,得到加密後的值,,將這個值與資料庫的加密值比對,如果正確則登入。
② 用戶名和存儲密碼迷你資料庫加密的話應該怎麼做
1、定義一個加密處理的class類,通常可以使用MD5來加密,在網路上可以找到此Java源代碼
2、在保存用戶的密碼時,先對獲取的密碼進行MD5加密後再保存到數據,如:
String passwd=request.getParameter("passwd");
passwd=MD5(passwd);
//通過JDBC寫入到資料庫
3、在用戶登錄時,將用戶登錄輸入的密碼進行MD5加密後與資料庫讀取的密碼進行比較,若相等若通過登錄:
String passwd=request.getParameter("passwd");
.......
if(MD5(passwd).equal(rs.get("passwd")))
//通過登錄
假如你是一個管理員,
你還要進行一些用戶的建立及授權,這又涉及到設置密碼的問題.下面我們就討論一下如何設置密碼:
首先我們應該知道Mysql資料庫中的口令存儲必須用password()函數加密它.因為在user表中是以加密形式存儲口令,而不是作為純文本.如果你沒有加密,直接在資料庫中執行以下語句:
use
mysql
insert
into
user
(host,user,password)
values
('%','user_name','your
password');
flush
privileges;相信結果不會讓你滿意.因為伺服器比較的是加密的值,所以伺服器連接一定失敗.這里需要說明的是flush
privileges;這條
命令起到了重新載入授權表.你也可以在shell下直接用mysqladmin
-u
root
reload或者mysqladmin
-u
root
flush-privileges來
實現重載授權表.
在MySQL環境下,你可以使用以下語句進行設置密碼:
1.insert
into
user(host,user,password)
values('%','user_name',password("your
password");
2.set
password
for
user_name
=
password("your
password")以上兩種方法都必須進行重載授權表.
3.當然你也可以在創建一個用戶時直接設置密碼,grant語句將為你自動加密口令.
示例:
grant
all
on
*.*
to
mailto:user_name@
identified
by
"your
password";另外大家也可以在shell環境下用mysqladmin程序來設置密碼。
④ sql server中怎麼給資料庫表中的用戶密碼加密
在SQl2005下自帶的函數hashbytes()
,此函數是微軟在SQL
SERVER
2005中提供的,可以用來計算一個字元串的
MD5
和
SHA1
值,使用方法如下:
--獲取123456的MD5加密串
select
hashbytes('MD5',
'123456')
;
--獲取123456的SHA1加密串
select
hashbytes('SHA1',
'123456')
;有了這個函數可以在sqlserver中為字元串進行加密,但是hashbytes()
函數的返回結果是
varbinary類型,(以
0x
開頭
16
進制形式的二進制數據)通常情況下,我們需要的都是字元串型的數據,很多人首先想到的可能就是用
CAST
或
Convert
函數將varbinary
轉換為
varchar,但這樣轉換後的結果會是亂碼,正確轉換
varbinary
可變長度二進制型數據到
16
進制字元串應該使用系統內置函數
sys.fn_varbintohexstr()(只在sqlserver2005下有),如下所示:select
sys.fn_varbintohexstr(hashbytes('MD5',
'123456'))
然後就可以截取需要的部分select
lower(right(sys.fn_varbintohexstr(hashbytes('MD5','123456')),32))為md5加密串。
⑤ mysql 資料庫的 登錄密碼的 加密方式是什麼
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位。
⑥ 如何在資料庫內進行密碼加密和解密
作為參考,數據本身提供的字元串加密方法:
------------1.HASHbytes---------------
SELECT sys.fn_sqlvarbasetostr(HASHbytes('MD5','2324243')),sys.fn_VarBinToHexStr(HASHbytes('MD5','2324243'))
------------2. EncryptByPassPhrase 帶公鑰---------------
--公鑰最好保存在其他地方
declare @pwd varbinary(max) ,@password nvarchar(1000) , @EncrptString nvarchar(max)
set @password ='1234567'
set @EncrptString= N'我是中國人'
--加密
SELECT @pwd = EncryptByPassPhrase( @password, @EncrptString)
select @pwd
--解密
SELECT @EncrptString =CAST( DecryptByPassPhrase(@password,@pwd) as nvarchar(max))
select @EncrptString
⑦ sql server中怎麼給資料庫表中的用戶密碼加密
1、首先我們電腦上要安裝有SQL Server,然後要准備一個MDF資料庫文件。打開SQL Server。
⑧ sql數據加密有幾種方法
對sql中的數據進行加密,有5種方法,
1、利用CONVERT改變編碼方式:
利用該函數把文字或數據轉換成VARBINARY。但該方式不具備保護數據的能力,僅避免瀏覽數據的過程中能直接看到敏感數據的作用。
2、利用對稱密鑰:
搭配EncryptByKey進行數據加密。使用DecryptByKey函數進行解密。這種方式比較適合大數據量。因為對稱密鑰的過程耗用資源較少。
3、利用非對稱密鑰:
搭配EncryptByAsymKey進行數據加密。使用DecryptByAsymKey函數進行解密。用於更高安全級別的加解密數據。因為耗用資源叫多。
4、利用憑證的方式:
搭配EncryptByCert進行加密和DecryptByCert函數進行解密。比較類似非對稱密鑰。
5、利用密碼短語方式:
搭配EncryptBypassPhrase進行加密,使用DecryptByPassPhrase函數來解密。可以使用有意義的短語或其他數據行,當成加密、解密的關鍵字,比較適合一般的數據加解密。
(8)資料庫表中密碼如何給密碼加密擴展閱讀:
sql資料庫的組成:
在正式學習SQL語言之前,首先讓我們對SQL語言有一個基本認識,介紹一下SQL語言的組成:
1、一個SQL資料庫是表(Table)的集合,它由一個或多個SQL模式定義。
2、一個SQL表由行集構成,一行是列的序列(集合),每列與行對應一個數據項。
3、一個表或者是一個基本表或者是一個視圖。基本表是實際存儲在資料庫的表,而視圖是由若干基本表或其他視圖構成的表的定義。
4、一個基本表可以跨一個或多個存儲文件,一個存儲文件也可存放一個或多個基本表。每個存儲文件與外部存儲上一個物理文件對應。
5、用戶可以用SQL語句對視圖和基本表進行查詢等操作。在用戶角度來看,視圖和基本表是一樣的,沒有區別,都是關系(表格)。
6、SQL用戶可以是應用程序,也可以是終端用戶。SQL語句可嵌入在宿主語言的程序中使用,宿主語言有FORTRAN,COBOL,PASCAL,PL/I,C和Ada語言等。
SQL用戶也能作為獨立的用戶介面,供交互環境下的終端用戶使用。
參考資料來源:網路-SQL資料庫
⑨ mysql資料庫密碼加密方式有幾種
MySQL資料庫的認證密碼有兩種方式,
MySQL 4.1版本之前是MySQL323加密,MySQL 4.1和之後的版本都是MySQLSHA1加密,
MySQL資料庫中自帶Old_Password(str)和Password(str)函數,它們均可以在MySQL資料庫里進行查詢,前者是MySQL323加密,後者是MySQLSHA1方式加密。
(1)以MySQL323方式加密
selectold_password('111111');
(2)以MySQLSHA1方式加密
select password('111111');
MYSQL323加密中生成的是16位字元串,而在MySQLSHA1中生存的是41位字元串,其中*是不加入實際的密碼運算中,通過觀察在很多用戶中都攜帶了"*",在實際破解過程中去掉"*",也就是說MySQLSHA1加密的密碼的實際位數是40位。
⑩ 如何給access2016資料庫加密
點擊access的開始菜單,打開開始菜單
在開始菜單中,選擇【打開】
在打開對話框中,我們選中一個我們想要加密的資料庫,然後點擊下面這個下拉按鈕,也就是黑色小三角,打開一個下拉菜單
在這個菜單中,點擊【以獨占方式打開】
在打開的資料庫中,我們點擊菜單欄上面的【資料庫工具】
在這個選項中,我們點擊【用密碼進行加密】
輸入密碼兩次,如果兩次密碼輸入一樣,點擊確定即可。
如果你要取消密碼,同樣需要【以獨占方式打開】資料庫
還是在添加密碼的地方,依次點擊【資料庫工具】——【用密碼進行加密】
如果你沒有用獨占方式打開資料庫,在這一步,系統會提示你,不能修改密碼,這時候你要返回第八步,重新打開
如果你是以獨占方式打開資料庫,那麼你在這一步會看到輸入密碼的對話框,如果你輸入的密碼正確,資料庫就會被取消密碼。點擊確定即可。