|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
|
1、mysqladmin -u root password
"newpass"
如果已经配置了密码:
mysqladmin -uroot -prenzhiyuan password
'123456'
2、用SET PASSWORD命令
mysql> SET PASSWORD FOR
'root'
@
'localhost'
= PASSWORD(
'renzhiyuan'
);
Query OK, 0 rows affected (0.00 sec)
mysql>
3、UPDATE
mysql> UPDATE user SET Password = PASSWORD(
'123456'
) WHERE user =
'root'
;
Query OK, 4 rows affected (0.00 sec)
Rows matched: 4 Changed: 4 Warnings: 0
mysql>
查看:
mysql>
select
user,host,password from user;
+--------+---------------+-------------------------------------------+
| user | host | password |
+--------+---------------+-------------------------------------------+
| root | localhost | *6BB4837EB74329105EE4568DDA7DC67ED2CA2AD9 |
| root | 127.0.0.1 | *6BB4837EB74329105EE4568DDA7DC67ED2CA2AD9 |
| +--------+---------------+-------------------------------------------+
5 rows
in
set
(0.00 sec)
mysql>
MySQL在其内部是不存放用户的明文密码的,基本安全算是满足了。MySQL实际上是使用了两次SHA1夹杂一次unhex的方式对用户密码进行了加密,因此一般来说密文是通过不可逆加密算法得到的。这样即使敏感信息泄漏,除了暴力破解是无法快速从密文直接得到明文的。
mysql>
select
password(
'mypassword'
),concat(
'*'
,sha1(unhex(sha1(
'mypassword'
))));
+-------------------------------------------+---------------------------------------------+
| password(
'mypassword'
) | concat(
'*'
,sha1(unhex(sha1(
'mypassword'
)))) |
+-------------------------------------------+---------------------------------------------+
| *FABE5482D5AADF36D028AC443D117BE1180B9725 | *fabe5482d5aadf36d028ac443d117be1180b9725 |
+-------------------------------------------+---------------------------------------------+
1 row
in
set
(0.47 sec)
mysql>
|
|
1
2
3
4
5
6
7
8
9
10
|
[root@mysql ~]
# cat .mysql_history
SET PASSWORD FOR
'root'
@
'localhost'
= PASSWORD(
'renzhiyuan'
);
show databases;
use mysql;
select
host,password,user from user;
grant all on *.* to root@
'192.168.1.243'
identified by
'renzhiyuan'
;
flush privileges;
show databases;
flush privileges;
[root@mysql ~]
#
|
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
|
[root@MySQL ~]
# ll
总用量 66352
-rw-r--r-- 1 root root 67940718 12月 21 2016 2016-12-21-07-00-01.sql
[root@MySQL ~]
# du -sh 2016-12-21-07-00-01.sql
65M 2016-12-21-07-00-01.sql
[root@MySQL ~]
# tar -czf - 2016-12-21-07-00-01.sql |openssl enc -e -aes256 -out MySQLbak_$(date +%F-%H-%M-%S).tar.gz
enter aes-256-cbc encryption password:
Verifying - enter aes-256-cbc encryption password:
#加密密码
[root@MySQL ~]
# ll
总用量 76536
-rw-r--r-- 1 root root 67940718 12月 21 2016 2016-12-21-07-00-01.sql
-rw-r--r-- 1 root root 10426544 1月 28 13:23 MySQLbak_2016-01-28-13-23-10.
tar
.gz
[root@MySQL ~]
# du -sh *
65M 2016-12-21-07-00-01.sql
10M MySQLbak_2016-01-28-13-23-10.
tar
.gz
[root@MySQL ~]
# mv 2016-12-21-07-00-01.sql /opt/
[root@MySQL ~]
# ll
总用量 10184
-rw-r--r-- 1 root root 10426544 1月 28 13:23 MySQLbak_2016-01-28-13-23-10.
tar
.gz
[root@MySQL ~]
# ll
总用量 10184
-rw-r--r-- 1 root root 10426544 1月 28 13:23 MySQLbak_2016-01-28-13-23-10.
tar
.gz
[root@MySQL ~]
# openssl enc -d -aes256 -in MySQLbak_2016-01-28-13-23-10.tar.gz |tar xz -C /root/
enter aes-256-cbc decryption password:
#错误密码
gzip
: stdin: not
in
gzip
format
tar
: Child died with signal 13
tar
: Error is not recoverable: exiting now
error writing output
file
[root@MySQL ~]
# openssl enc -d -aes256 -in MySQLbak_2016-01-28-13-23-10.tar.gz |tar xz -C /root/
enter aes-256-cbc decryption password:
#正确密码
[root@MySQL ~]
# ll
总用量 76536
-rw-r--r-- 1 root root 67940718 12月 21 2016 2016-12-21-07-00-01.sql
-rw-r--r-- 1 root root 10426544 1月 28 13:23 MySQLbak_2016-01-28-13-23-10.
tar
.gz
[root@MySQL ~]
#
|





5587

被折叠的 条评论
为什么被折叠?



