MySQL数据库安全办理筹划[MySQL防范]
本文“MySQL数据库安全办理筹划[MySQL防范]”是由七道奇为您精心收集,来源于网络转载,文章版权归文章作者所有,本站不对其观点以及内容做任何评价,请读者自行判断,以下是其具体内容:
哈希加密
假如数据库保存了敏感的数据,如银行卡密码,客户信息等,你大概想将这些数据以加密的情势保存在数据库中.这样即便有人进入了你的数据库,并看到了这些数据,也很可贵到此中的真实信息.
在利用程序的大量信息中,大概你只想交很小的一部份举行加密,如用户的密码等.这些密码不该该以明文的情势保存,它们应当以加密的情势保存在数据库中.普通情形下,大大都系统,这此中包含MySQL本身都是利用哈希算法对敏感数据举行加密的.
哈希加密是单向加密,也就是说,被加密的字符串是无法得到原字符串的.这种办法利用很有限,普通只利用在密码考证或别的需求考证的地方.在对比时并非将加密字符串举行解密,而是将输入的字符串也利用一样的办法举行加密,再和数据库中的加密字符串举行对比.这样即便知道了算法并得到了加密字符串,也无法复原最初的字符串.银行卡密码就是采取的这种方法举行加密.
MySQL供应了4个函数用于哈希加密:PASSWORD, ENCRYPT, SHA1和MD5.下面让我们试一试这4个函数,看看会得到什么后果.我们以加密字符串"pa55word"为例举行阐明:
让我们先来看看MD5函数
SELECT MD5('pa55word');
+----------------------------------+
| MD5('pa55word') |
+----------------------------------+
| a17a41337551d6542fd005e18b43afd4 |
+----------------------------------+
1 row in set (0.13 sec)
下面是PASSWORD函数
SELECT PASSWORD('pa55word');
+----------------------+
| PASSWORD('pa55word') |
+----------------------+
| 1d35c6556b8cab45 |
+----------------------+
1 row in set (0.00 sec)
下面是ENCRYPT函数
SELECT ENCRYPT('pa55word');
+---------------------+
| ENCRYPT('pa55word') |
+---------------------+
| up2Ecb0Hdj25A |
+---------------------+
1 row in set (0.17 sec)
上面的每个函数都返回了一个加密后的字符串.为了辨别加密字符串的大小写,最好在利用ENCRYPT生成加密字符串时,将这个字段定义成CHAR BINARY范例.
上面摆列了3种加密的办法,但我认为利用MD5加密是最好的.这是因为这样做可以将明文密码显示在处理列表中或是查询日记中,这样便于跟踪.以下面的INSERT语句利用插入了一条记录,此中的密码利用了MD5举行加密:
INSERT INTO table1 (user, pw) VALUE ('user1', MD5('password1') )
可以通过以下的语句举行密码考证:
SELECT * FROM table1 WHERE user = 'user1' AND pw = MD5('password1')
哈希加密办法可以很好地对密码举行加密,利用了这种办法加密,密码将无法 恢复成明文.
以上是“MySQL数据库安全办理筹划[MySQL防范]”的内容,如果你对以上该文章内容感兴趣,你可以看看七道奇为您推荐以下文章:
本文地址: | 与您的QQ/BBS好友分享! |