利用MySQL加密函数保护Web网站敏感数据(2)
作者:handan 发布时间:2008-12-17 16:11:00
标签:加密,数据库,mysql,函数
现在您可以测试用户输入的内容是否与已经保存的密码匹配,方法是取得用户输入密码的MD5校验码,并将它与已经保存的密码进行比对,就像下面这样:
mysql> SELECT COUNT(*) FROM users WHERE
username='joe' AND password=MD5('guessme');
+----------+
| COUNT(*) |
+----------+
| 1 |
+----------+
1 row in set (0.00 sec)
或者,您考虑一下使用ENCRYPT()函数,它使用系统底层的crypt()系统调用来完成加密。这个函数有两个参数:一个是要被加密的字符串,另一个是双(或者多)字符的“salt”。它然后会用salt加密字符串;这个salt然后可以被用来再次加密用户输入的内容,并将它与先前加密的字符串进行比对。下面一个例子说明了如何使用它:
mysql> INSERT INTO users (username, password)
VALUES ('joe', ENCRYPT('guessme', 'ab'));
Query OK, 1 row affected (0.00 sec)
mysql> SELECT * FROM users WHERE username='joe';
+----------+---------------+
| username | password |
+----------+---------------+
| joe | ab/G8gtZdMwak |
+----------+---------------+
1 row in set (0.00 sec)
结果是:
mysql> SELECT COUNT(*) FROM users WHERE
username='joe' AND password=ENCRYPT('guessme', 'ab');
+----------+
| COUNT(*) |
+----------+
| 1 |
+----------+
1 row in set (0.00 sec)
注释:ENCRYPT()只能用在*NIX系统上,因为它需要用到底层的crypt()库。
值得注意的是,上面的例子说明了如何利用MySQL对您的数据进行单向和双向的加密,并且告诉了您一些关于如何保护数据库和其他敏感数据库信息安全的理念。


猜你喜欢
- 需要把一个从csv文件里读取来的数据集等距抽样分割,这里用到了列表表达式和dataframe.iloc先生成索引列表:index_list
- 在MySQL数据库中导出整个数据库:1.导出整个数据库mysqldump -u 用户名 -p 数据库名 > 导出的文件名mysqldu
- 代码如下:'其中注释中有 ###的需要用户设置 '其中注释中有 参数传递 ** 的 说明要通过参数 传递。'定义变量
- 如果你从未为MySQL设置根用户密码,服务器在以根用户身份进行连接时不需要密码。但是,建议你为每个账户设置密码。如果你以前设置了根用户密码,
- openpyxl打开的文件是否需要关闭如果是只读或者只写的模式下,是需要再调用close()方法关闭workbook,正常的情况下是不需要调
- 本文实例讲述了PHP利用header跳转失效的解决方法,分享给大家供大家参考。具体方法分析如下:一、问题:今天header(\"L
- 误区 #30:有关备份的30个误区全是错的在开始有关备份的误区之前,如果你对备份的基础没有了解,请看之前我在TechNet Magazine
- 1、在JavaScript中,arguments对象是比较特别的一个对象,实际上是当前函数的一个内置属性。arguments非常类似Arra
- 1.每个客户端连接都会从服务器进程中分到一个属于它的线程。而该连接的相应查询都都会通过该线程处理。2.服务器会缓存线程。因此并不会为每个新连
- 首先要兼容IE\FF滴然后有一个环境与条件:必须是使用em单位布局。因为这个是利用字号做缩放效果,并且兼容fontSize各项单位,例如px
- 本文实例讲述了Python操作串口的方法。分享给大家供大家参考。具体如下:首先需确保安装了serial模块,如果没安装的话就安装一下pyth
- 一般用 createProcessingInstruction 方法创建处理指令指定参数为 "xml","ve
- 前言opencv中封装了一个专门用于求解cv::Mat均值的函数,即cv::mean(&cv::Mat),该函数会得到Mat中各个通
- Nodemailer是一个简单易用的Node.js邮件发送组件,具体操作如下1、安装nodemailernpm install nodema
- 本文实例讲述了Python udp网络程序实现发送、接收数据功能。分享给大家供大家参考,具体如下:1. udp网络程序-发送数据创建一个基于
- 连接服务器菜单栏找到【工具/Tools】->【Deployment/部署】->【Confinguration…/配置…】。点加号
- 前言这是我之前安装的mysql5.7,然后想换成mysql8.0就有这篇,差不多跟着操作应该可以删除干净。一、你要先查询你是否安装了mysq
- Go 在testing包中内置测试命令go test,提供了最小化但完整的测试体验。标准工具链还包括基准测试和基于代码覆盖的语句,类似于NC
- 前言RabbitMQ是一个在AMQP基础上完整的,可复用的企业消息系统。他遵循Mozilla Public License开源协议。MQ全称
- Python配对函数zip()1、zip将列表、元组或其他序列的元素进行配对新建成一个元组构成的列表,它生成列表长度由最短的序列决定:#zi