首先,先介紹下加密函數(shù),PASSWORD(string)函數(shù)可以對(duì)字符串string進(jìn)行加密,代碼如下:
為企業(yè)提供網(wǎng)站建設(shè)、成都做網(wǎng)站、網(wǎng)站優(yōu)化、營(yíng)銷型網(wǎng)站、競(jìng)價(jià)托管、品牌運(yùn)營(yíng)等營(yíng)銷獲客服務(wù)。創(chuàng)新互聯(lián)建站擁有網(wǎng)絡(luò)營(yíng)銷運(yùn)營(yíng)團(tuán)隊(duì),以豐富的互聯(lián)網(wǎng)營(yíng)銷經(jīng)驗(yàn)助力企業(yè)精準(zhǔn)獲客,真正落地解決中小企業(yè)營(yíng)銷獲客難題,做到“讓獲客更簡(jiǎn)單”。自創(chuàng)立至今,成功用技術(shù)實(shí)力解決了企業(yè)“網(wǎng)站建設(shè)、網(wǎng)絡(luò)品牌塑造、網(wǎng)絡(luò)營(yíng)銷”三大難題,同時(shí)降低了營(yíng)銷成本,提高了有效客戶轉(zhuǎn)化率,獲得了眾多企業(yè)客戶的高度認(rèn)可!
SELECT
PASSWORD('you');
如下圖所示:
執(zhí)行第一步的SQL語句,查詢結(jié)果是一串字符串,并且PASSWORD(string)函數(shù)加密是不可逆轉(zhuǎn),
如下圖所示:
另外一個(gè)加密函數(shù)MD5(string),主要針對(duì)普通的數(shù)據(jù)進(jìn)行加密,代碼如下:
SELECT
MD5('hai');
如下圖所示:
最后一個(gè)加密函數(shù)ENCODE(string,pass),可以使用字符串pass來加密字符串string。首先要?jiǎng)?chuàng)建一個(gè)數(shù)據(jù)庫表t_pass_info,代碼如下:
CREATE
TABLE
t_pass_info(
id
int(10),
pass_info
blob
);
如下圖所示:
然后,向這個(gè)數(shù)據(jù)庫表插入一條數(shù)據(jù),代碼如下:
INSERT
INTO
t_pass_info(id,pass_info)
VALUES
(1,ENCODE('dong','bb'));
如下圖所示:
6
查看插入數(shù)據(jù)庫表t_pass_info記錄,代碼如下:
SELECT
*
FROM
t_pass_info;
如下圖所示:
7
MySQL自帶還有一個(gè)解密函數(shù)DECODE(str,pass_str),可以使用字符串pass_str來為str解密,代碼如下:
SELECT
DECODE(ENCODE('dong','aa'),'aa');
如下圖所示:
方法一:最簡(jiǎn)單的方法,也是安裝完mysql后,系統(tǒng)提示的方法。使用mysqladmin來完成。shell
mysqladmin
-u
root
password
"newpwd"
shell
mysqladmin
-u
root
-h
host_name
password
"newpwd"password后面的雙引號(hào)不是必須的,不過如果密碼包含空格或者一些特殊的符號(hào),需要用引號(hào)。方法二:利用mysql里面的SET
PASSWORD命令來完成,注意必須使用PASSWORD()函數(shù)來加密設(shè)置的這個(gè)newpwd,否則直接='newpwd'不會(huì)生效。不過如果使用方法一用mysqladmin
password設(shè)置密碼或者用GRANT來設(shè)置,就不用使用PASSWORD()函數(shù),因?yàn)樗鼈円呀?jīng)自動(dòng)調(diào)用了該函數(shù)。shell
mysql
-u
root
mysql
SET
PASSWORD
FOR
'root'@'localhost'
=
PASSWORD('newpwd');
mysql
SET
PASSWORD
FOR
'root'@'host_name'
=
PASSWORD('newpwd');
方法三:直接通過UPDATE
user表來設(shè)置密碼shell
mysql
-u
root
mysql
UPDATE
mysql.user
SET
Password
=
PASSWORD('newpwd')
-
WHERE
User
=
'root';
mysql
FLUSH
PRIVILEGES;
如果忘記mysql的root密碼可以采取下面的步驟重新設(shè)置
1。kill掉所有mysql的進(jìn)程
2。使用--skip-grant-tables的參數(shù)啟動(dòng)mysql
shell
mysqld_safe
--skip-grant-tables
3。設(shè)置新的密碼,同樣兩種方式可以選擇
方法一
shell
mysqladmin
-u
root
flush-privileges
password
"newpwd"
方法二
mysql
UPDATE
mysql.user
SET
Password=PASSWORD('newpwd')
-
WHERE
User='root';
mysql
FLUSH
PRIVILEGES;
4。停止mysql
server,用正常的模式啟動(dòng)
5。OK,可以使用新設(shè)置的密碼了
使用mysql的加密函數(shù)運(yùn)行:
select HEX(AES_ENCRYPT( 'test aes encrypt','123')) as aesTest
輸出密文:
17CDAE577C715A0B5A922BF07462622AF15884B6D0F596B0241DC8F966C4A93F
官方文檔解釋:
The block_encryption_mode system variable controls the mode for block-based encryption algorithms. Its default value is font color="red" aes-128-ecb /font, which signifies encryption using a key length of 128 bits and ECB mode. For a description of the permitted values of this variable, see Section 5.1.8, “Server System Variables” .
在線加密驗(yàn)證 :
該網(wǎng)加密結(jié)果為:
17cdae577c715a0b5a922bf07462622af15884b6d0f596b0241dc8f966c4a93f
與mysql加密結(jié)果一致,只是大小寫差異。
如果你的字段夠長(zhǎng)度的話:\x0d\x0aUPDATE users SET password = MD5(password);\x0d\x0a如果長(zhǎng)度不夠,可以先增加長(zhǎng)度后再做,或者多建一列,完成后刪除原來的列?。ㄈ鏿asswd)\x0d\x0aUPDATE users SET passwd = MD5(password);
假如你是一個(gè)管理員,
你還要進(jìn)行一些用戶的建立及授權(quán),這又涉及到設(shè)置密碼的問題.下面我們就討論一下如何設(shè)置密碼:
首先我們應(yīng)該知道Mysql數(shù)據(jù)庫中的口令存儲(chǔ)必須用password()函數(shù)加密它.因?yàn)樵趗ser表中是以加密形式存儲(chǔ)口令,而不是作為純文本.如果你沒有加密,直接在數(shù)據(jù)庫中執(zhí)行以下語句:
use
mysql
insert
into
user
(host,user,password)
values
('%','user_name','your
password');
flush
privileges;相信結(jié)果不會(huì)讓你滿意.因?yàn)榉?wù)器比較的是加密的值,所以服務(wù)器連接一定失敗.這里需要說明的是flush
privileges;這條
命令起到了重新加載授權(quán)表.你也可以在shell下直接用mysqladmin
-u
root
reload或者mysqladmin
-u
root
flush-privileges來
實(shí)現(xiàn)重載授權(quán)表.
在MySQL環(huán)境下,你可以使用以下語句進(jìn)行設(shè)置密碼:
1.insert
into
user(host,user,password)
values('%','user_name',password("your
password");
2.set
password
for
user_name
=
password("your
password")以上兩種方法都必須進(jìn)行重載授權(quán)表.
3.當(dāng)然你也可以在創(chuàng)建一個(gè)用戶時(shí)直接設(shè)置密碼,grant語句將為你自動(dòng)加密口令.
示例:
grant
all
on
*.*
to
mailto:user_name@
identified
by
"your
password";另外大家也可以在shell環(huán)境下用mysqladmin程序來設(shè)置密碼。
在Windows命令行下修改mysql數(shù)據(jù)庫密碼步驟如下:
1、通過dos命令進(jìn)入mysql的bin目錄;
2、輸入“mysql
-uroot
-p”,回車進(jìn)入mysql命令狀態(tài);
3、如果root原來有密碼,mysql將提示輸入原密碼,再進(jìn)入mysql命令狀態(tài);
4、這里假設(shè)將root用戶密碼修改為mysql56,則在mysql命令狀態(tài)下輸入:
update
mysql.user
set
password=PASSWORD('mysql56')
where
user='root';
提示Query
OK,說明已更新。
5、輸入FLUSH
PRIVILEGES;來保存修改內(nèi)容,在mysql命令狀態(tài)下輸入:
FLUSH
PRIVILEGES;回車
至此,密碼修改完成。
文章標(biāo)題:mysql怎么加密,mysql數(shù)據(jù)庫加密方式
分享路徑:http://sd-ha.com/article38/dsesjpp.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站設(shè)計(jì)、外貿(mào)建站、企業(yè)網(wǎng)站制作、定制網(wǎng)站、靜態(tài)網(wǎng)站、App開發(fā)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)