首页 | 资讯动态 | linux基础 | 系统管理 | 网络管理 | 编程开发 | linux数据库 | 服务器技术 | linux相关 | linux认证 | 嵌入式 | 下载中心 | 专题 | linux招聘 | 镜像站
OKLinux中文技术站
·设为首页
·加入收藏
·联系我们
系统管理: 中文环境 系统管理 桌面应用 内核技术 | Linux基础: 基础入门 安装配置 常用命令 经验技巧 软件应用 | Linux数据库: Mysql Postgre Oracle DB2 Sybase other
网络管理: 网络安全 网络应用 Linux服务器 环境配置 黑客安全 | 编程开发: PHP CC++ Python Perl Shell 嵌入式开发 java jsp | PHP技术: PHP基础 PHP技巧 PHP应用 PHP文摘
搜索中心 Linux招聘 Linux专题 Apache | Linux相关: 硬件相关 Linux解决方案 Linux认证 企业应用 其它Unix | 相关下载: 资料下载 参考手册 开发工具 服务器类 软路由 其它
 技术搜索:
会员中心 注册会员 高级搜索  
  → 当前位置:首页>linux数据库>mysql>正文

教你快速掌握MySQL数据库的双向加密方式

http://www.oklinux.cn  2008-05-13  来源: 赛迪网 Sam  会员收藏  游客收藏  【 】 

假如你正在运行使用MySQL的Web应用程序,那么你把密码或者其他敏感信息保存在应用程序里的机会就很大。保护这些数据免受黑客或者窥探者的获取是一个令人关注的重要问题,因为您既不能让未经授权的人员使用或者破坏应用程序,同时还要保证您的竞争优势。幸运的是,MySQL带有很多设计用来提供这种类型安全的加密函数。本文概述了其中的一些函数,并说明了如何使用它们,以及它们能够提供的不同级别的安全。

双向加密

就让我们从最简单的加密开始:双向加密。在这里,一段数据通过一个密钥被加密,只能够由知道这个密钥的人来解密。MySQL有两个函数来支持这种类型的加密,分别叫做ENCODE()和DECODE()。下面是一个简单的实例:

mysql> INSERT INTO users (username, password)

VALUES ('joe', ENCODE('guessme', 'abracadabra'));

Query OK, 1 row affected (0.14 sec)

其中,Joe的密码是guessme,它通过密钥abracadabra被加密。要注意的是,加密完的结果是一个二进制字符串,如下所示:

mysql> SELECT * FROM users WHERE username='joe';

---------- ----------

| username | password |

---------- ----------

| joe | ¡?i??!? |

---------- ----------

1 row in set (0.02 sec)

abracadabra这个密钥对于恢复到原始的字符串至关重要。这个密钥必须被传递给DECODE()函数,以获得原始的、未加密的密码。下面就是它的使用方法:

mysql> SELECT DECODE(password, 'abracadabra')

FROM users WHERE username='joe';

---------------------------------

| DECODE(password, 'abracadabra') |

---------------------------------

| guessme |

---------------------------------

1 row in set (0.00 sec)

应该很容易就看到它在Web应用程序里是如何运行的——在验证用户登录的时候,DECODE()会用网站专用的密钥解开保存在数据库里的密码,并和用户输入的内容进行对比。假设您把PHP用作自己的脚本语言,那么可以像下面这样进行查询:

$query = "SELECT COUNT(*) FROM users WHERE

username='$inputUser' AND DECODE(password,

'abracadabra') = '$inputPass'";?>

注意:虽然ENCODE()和DECODE()这两个函数能够满足大多数的要求,但是有的时候您希望使用强度更高的加密手段。在这种情况下,您可以使用AES_ENCRYPT()和AES_DECRYPT()函数,它们的工作方式是相同的,但是加密强度更高。


上一篇:实例讲解MySQL数据库密码的恢复与重设   下一篇:MySQL编码与建表时编码不一样的解决方法

收藏于收藏夹】 【评论】 【推荐】 【打印】 【关闭
相关文档
·MySQL编码与建表时编码不一样的解决方法
·实例讲解MySQL数据库密码的恢复与重设
·MySQL数据库常见的出错代码及出错信息
·Linux操作系统下MySQL的查看
·带你轻松接触MySQL数据库的异常处理
·使用实例管理器轻松管理多个MySQL实例
·循序渐进讲解MySQL数据库的性能调整
·MySQL性能调整之my.cnf文件的配置方法
·由浅入深讲解MySQL数据库索引的选择性
·数据库索引的优缺点及使用时的注意事项
·删除完全重复和部分关键字段重复的记录
·Linux服务器上安装MySQL版本冲突问题的解决
·讲解MySQL索引的概念及数据库索引的应用
·Replace INTO与INSERT INTO的不同之处
·详细讲解Linux环境下 MySQL5.1安装步骤
·MySQL安装后时服务不能启动的解决
发表评论
密码: 匿名评论
评论内容:

(不超过250字,需审核后才会公布,请自觉遵守互联网相关政策法规)
 
  最新文档
·MySQL编码与建表时编码不一样的解决方
·实例讲解MySQL数据库密码的恢复与重设
·MySQL数据库常见的出错代码及出错信息
·Linux操作系统下MySQL的查看
·带你轻松接触MySQL数据库的异常处理
·使用实例管理器轻松管理多个MySQL实例
·循序渐进讲解MySQL数据库的性能调整
·MySQL性能调整之my.cnf文件的配置方法
·由浅入深讲解MySQL数据库索引的选择性
·数据库索引的优缺点及使用时的注意事项
·删除完全重复和部分关键字段重复的记录
·Linux服务器上安装MySQL版本冲突问题的
  阅读排行
·Linux 安装 Mysql
·如何在Linux系统中安装MySQL
·在Linux 环境下安装 Mysql
·在Linux上安装MySQL Server 5.0
·图形化管理MySQL更轻松
·[Mysql]IIS+mysql+php相关知识介绍
·你应该知道的10个MySQL客户启动选项
·MySQL创始人David Axmark 访谈实录
·[MySQL]入门学习从安装入门到学习操作
·Linux系统上安装MYSQL数据库的方法
·Heartbeat_2.0.3配置MySQL5.0.8集群
·《数据结构(C语言版)》 电子书籍下载
·如何启动与停止MySQL的服务器
·MySQL中文参考手册-创造并使用数据库
·MySQL 5.0新特性教程 存储过程:第一讲
网摘收藏: