MySQL數(shù)據(jù)庫(kù)的認(rèn)證密碼有兩種方式,
興平ssl適用于網(wǎng)站、小程序/APP、API接口等需要進(jìn)行數(shù)據(jù)傳輸應(yīng)用場(chǎng)景,ssl證書未來(lái)市場(chǎng)廣闊!成為成都創(chuàng)新互聯(lián)公司的ssl證書銷售渠道,可以享受市場(chǎng)價(jià)格4-6折優(yōu)惠!如果有意向歡迎電話聯(lián)系或者加微信:18982081108(備注:SSL證書合作)期待與您的合作!
MySQL
4.1版本之前是MySQL323加密,MySQL
4.1和之后的版本都是MySQLSHA1加密,
MySQL數(shù)據(jù)庫(kù)中自帶Old_Password(str)和Password(str)函數(shù),它們均可以在MySQL數(shù)據(jù)庫(kù)里進(jìn)行查詢,前者是MySQL323加密,后者是MySQLSHA1方式加密。
(1)以MySQL323方式加密
select old_password('111111');
(2)以MySQLSHA1方式加密
select
password('111111');
MYSQL323加密中生成的是16位字符串,而在MySQLSHA1中生存的是41位字符串,其中*是不加入實(shí)際的密碼運(yùn)算中,通過(guò)觀察在很多用戶中都攜帶了"*",在實(shí)際破解過(guò)程中去掉"*",也就是說(shuō)MySQLSHA1加密的密碼的實(shí)際位數(shù)是40位。
a) 函數(shù) AES_ENCRYPT(str ,key_str ) , AES_DECRYPT(crypt_str ,key_str )
函數(shù)使用說(shuō)明:這些函數(shù)允許使用官方 AES 進(jìn)行加密和數(shù)據(jù)加密 ( 高級(jí)加密標(biāo)準(zhǔn) ) 算法 , 即以前人們所熟知的 “Rijndael” 。 保密關(guān)鍵字的長(zhǎng)度為 128 比特,不過(guò)你可以通過(guò)改變?cè)炊鴮⑵溲娱L(zhǎng)到 256 比特。我們選擇了 128 比特的原因是它的速度要快得多,且對(duì)于大多數(shù)用途而言這個(gè)保密程度已經(jīng)夠用。
b) 函數(shù)DECODE(crypt_str ,pass_str )
函數(shù)使用說(shuō)明:使用 pass_str 作為密碼,解密加密字符串 crypt_str , crypt_str 應(yīng)該是由 ENCODE() 返回的字符串。
c) 函數(shù) ENCODE(str ,pass_str )
函數(shù)使用說(shuō)明:使用 pass_str 作為密碼,解密 str 。 使用 DECODE() 解密結(jié)果。
d) 函數(shù) DES_DECRYPT(crypt_str [,key_str ])
函數(shù)使用說(shuō)明:使用 DES_ENCRYPT() 加密一個(gè)字符串。若出現(xiàn)錯(cuò)誤,這個(gè)函數(shù)會(huì)返回 NULL 。
e) 函數(shù) DES_ENCRYPT(str [,(key_num |key_str )])
函數(shù)使用說(shuō)明:用 Triple-DES 算法給出的關(guān)鍵字加密字符串。若出現(xiàn)錯(cuò)誤,這個(gè)函數(shù)會(huì)返回 NULL 。
f) 函數(shù) ENCRYPT(str [,salt ])
函數(shù)使用說(shuō)明:使用 Unix crypt() 系統(tǒng)調(diào)用加密 str 。 salt 參數(shù)應(yīng)為一個(gè)至少包含 2 個(gè)字符的字符串。若沒有給出 salt 參數(shù),則使用任意值。
g) 函數(shù) MD5(str )
函數(shù)使用說(shuō)明:為字符串算出一個(gè) MD5 128 比特檢查和。該值以 32 位十六進(jìn)制數(shù)字的二進(jìn)制字符串的形式返回 , 若參數(shù)為 NULL 則會(huì)返回 NULL 。例如,返回值可被用作散列關(guān)鍵字
h) 函數(shù) OLD_PASSWORD(str )
函數(shù)使用說(shuō)明:當(dāng) PASSWORD() 的執(zhí)行變?yōu)楦纳瓢踩詴r(shí), OLD_PASSWORD() 會(huì)被添加到 MySQL 。 OLD_PASSWORD() 返回從前的 PASSWORD() 執(zhí)行值 ( 4.1 之前 ) ,同時(shí)允許你為任何 4.1 之前的需要連接到你的 5.1 版本 MySQL 服務(wù)器前客戶端設(shè)置密碼,從而不至于將它們切斷
i) 函數(shù)PASSWORD(str )
函數(shù)使用說(shuō)明:從原文密碼str 計(jì)算并返回密碼字符串,當(dāng)參數(shù)為 NULL 時(shí)返回 NULL 。這個(gè)函數(shù)用于用戶授權(quán)表的Password 列中的加密MySQL 密碼存儲(chǔ)
如果你在安裝過(guò)程中沒有設(shè)置用戶名密碼的話,你可以用root用戶名與密碼登錄數(shù)據(jù)庫(kù):用戶名:root 密碼為空。如果設(shè)置過(guò)密碼忘記了,那不好意思,不能查看密碼,只能查看用戶名,因?yàn)閙ysql密碼是動(dòng)態(tài)md5加密,是不可逆向查詢的。
關(guān)于查詢用戶名:select * from mysql.user ;
首先,先介紹下加密函數(shù),PASSWORD(string)函數(shù)可以對(duì)字符串string進(jìn)行加密,代碼如下:
SELECT PASSWORD('you');
如下圖所示:
執(zhí)行第一步的SQL語(yǔ)句,查詢結(jié)果是一串字符串,并且PASSWORD(string)函數(shù)加密是不可逆轉(zhuǎn),
如下圖所示:
另外一個(gè)加密函數(shù)MD5(string),主要針對(duì)普通的數(shù)據(jù)進(jìn)行加密,代碼如下:
SELECT MD5('hai');
如下圖所示:
最后一個(gè)加密函數(shù)ENCODE(string,pass),可以使用字符串pass來(lái)加密字符串string。首先要?jiǎng)?chuàng)建一個(gè)數(shù)據(jù)庫(kù)表t_pass_info,代碼如下:
CREATE TABLE t_pass_info(
id int(10),
pass_info blob
);
如下圖所示:
然后,向這個(gè)數(shù)據(jù)庫(kù)表插入一條數(shù)據(jù),代碼如下:
INSERT INTO t_pass_info(id,pass_info) VALUES
(1,ENCODE('dong','bb'));
如下圖所示:
6
查看插入數(shù)據(jù)庫(kù)表t_pass_info記錄,代碼如下:
SELECT * FROM
t_pass_info;
如下圖所示:
7
MySQL自帶還有一個(gè)解密函數(shù)DECODE(str,pass_str),可以使用字符串pass_str來(lái)為str解密,代碼如下:
SELECT DECODE(ENCODE('dong','aa'),'aa');
如下圖所示:
mysql -uroot -p 輸入密碼回車后,出現(xiàn)如下圖錯(cuò)誤。這時(shí)候需要我們破解密碼。
service mysqld stop //先停止mysql服務(wù)。
然后打開mysql配置文件/etc/my.cnf.在【mysqld】下面添加一行代碼:skip-grant-tables。這行代碼意思就是跳過(guò)跳過(guò)授權(quán)表,即是可以跳過(guò)密碼驗(yàn)證直接進(jìn)入數(shù)據(jù)庫(kù)。
service mysqld restart //重啟mysql數(shù)據(jù)庫(kù)。假如不重啟的話,不會(huì)生效。
mysql -uroot -p //此時(shí)直接回車,既可以進(jìn)入數(shù)據(jù)庫(kù)。
出現(xiàn)mysql就說(shuō)明你已經(jīng)進(jìn)入到mysql數(shù)據(jù)庫(kù)里了。
進(jìn)數(shù)據(jù)庫(kù)后,
use mysql //選擇mysql這個(gè)庫(kù),因?yàn)閙ysql的root密碼存放在這個(gè)數(shù)據(jù)庫(kù)里。
show tables //查看下mysql庫(kù)里有哪些表,我們需要操作的用戶名密碼都在user表里。
desc user //查看下user表有哪些字段
更改root密碼。
update user set password=password('123456') where user="root"; //用戶選root,可以隨便更改成任意密碼,我這里設(shè)置的123456,password()是mysql密碼加密的一個(gè)函數(shù)。
flush privileges; //刷新下密碼,使更改的生效。
exit //退出數(shù)據(jù)庫(kù)。
退出數(shù)據(jù)庫(kù),重新登錄
mysql -uroot -p //回車輸入剛剛更改的密碼,就能進(jìn)去了。
然后再次進(jìn)入配置文件vi /etc/my.cnf 把skip-grant-tables去掉。
1、打開wampserver軟件,在任務(wù)欄點(diǎn)擊其圖標(biāo),在彈出的面板中點(diǎn)擊 phpMyAdmin。
2、接著會(huì)在瀏覽器打開數(shù)據(jù)庫(kù)管理的登入面板,輸入賬號(hào)、密碼登錄。
3、登錄后點(diǎn)擊賬戶 ,找到要修改密碼的賬戶并點(diǎn)擊其后面的 修改權(quán)限。
4、點(diǎn)修改密碼。
5、輸入密碼并確定,然后點(diǎn)執(zhí)行。之后會(huì)有提示信息,看到密碼的明文。