MySQL中使用MD5加密的实现

 更新时间:2022年08月03日 09:53:58   作者:bhegi_seg  
本文主要介绍了MySQL中使用MD5加密的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

什么是MD5?

MD5信息摘要算法(英语:MD5 Message-Digest Agorithm),一种被广泛使用的密码散列函数,可以产生出一个128位(16字节)的散列值(hash value),用于确保信息传输完整一致。MD5由美国密码学家罗纳德·李维斯特(Ronald LinnRivest))设计,于1992年公开,用以取代MD4算法。这套算法的程序在RFC1321标准中被加以规范。1996年后该算法被证实存在弱点,可以被加以破解,对于需要高度安全性的数据,专家一般建议改用其他算法,如SHA-2。2004年,证实MD5算法无法防止碰撞(collision),因此不适用于安全性认证,如SSL公开密钥认证或是数字签名等用途。【以上概念引自百度百科】

MD5初体验

在mysql中准备一个简单的用户表用于案例操作。

接下来测试各种sql语句:

普通插入语句(密码明文):

-- 普通新增语句(明文密码)
insert into user(uname,upass) values ('tom','1001');

在插入信息时加密**:**

-- 插入时使用MD5 算法加密
insert into user(uname,upass) values ('jack',MD5('1002'));

查询查看结果:

修改: 使用MD5算法将账号admin的密码修改。

-- 将原密码换为MD5加密后的密码
update user set upass=MD5(upass) where id =1;
-- 将原密码123456修改为 MD5加密后的密码(666)
update user set upass=MD5('666') where id =2;

结果:

加密全部密码:

-- 加密全部密码
update user set upass=MD5(upass)

条件查询,进行验证:

-- 根据账号密码 查询对应账号信息
select * from user where uname='admin' and upass=MD5('123')

-- 测试 将密码修改为666 的账号信息
select * from user where uname='root' and upass=MD5('666')

以上是通过MD5算法在mysql数据库中对一些信息的简单加密,具体知识有待整理。

MySQL中其他方式

(1) PASSWORD()函数:

-- password() 函数加密
update userinfo set password =password('333') where id=6
-- 查询验证
select * from userinfo where password=password('333')

password(str)从原明文密码str计算并返回加密后的密码字符串,当参数为null时,返回null。password加密是单向的,不可逆。

(2) ENCODE()函数

ENCODE(str,pass_str)函数用于对纯文本字符串进行编码,在编码后返回二进制字符串.

使用pswd_str作为密码,加密str.

str:它用于指定要编码的纯文本

pass_str:用于指定密码字符串以对纯文本字符串进行编码.

-- 字符串
select encode('hello','nice') 

-- 字符串和数字
select encode('nihao666','nice')

(3) DECODE(crypt_str,pass_str)

使用pswd_str作为密码,解密加密字符串crypt_str,crypt_str是由encode()返回的字符串。

select DECODE('nihao666','nice')

-- 使用decode函数解密encode加密的字符串
select DECODE(ENCODE('nihao666','nice'),'nice');

到此这篇关于MySQL中使用MD5加密的实现的文章就介绍到这了,更多相关MySQL MD5加密内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • 快速增加MYSQL数据库连接数负载能力的方法分享

    快速增加MYSQL数据库连接数负载能力的方法分享

    mysql数据库的负载能力除了和你机器硬件有关,还有一个重要参数就是你系统的配置有关,下面我来给大家介绍几种提高MYSQL数据库连接数负载能力方法总结,有需要的朋友可以参考一下
    2013-08-08
  • MySQL由浅入深探究存储过程

    MySQL由浅入深探究存储过程

    这篇文章主要介绍了MySQL存储过程,存储过程,也叫做存储程序,是一条或者多条SQL语句的集合,可以视为批量处理,但是其作用不仅仅局限于批量处理
    2022-11-11
  • MySQL数据表损坏的正确修复方案

    MySQL数据表损坏的正确修复方案

    修复以损坏的MySQL数据表的实际操作在实际中是我们经常用到的,以下的文章主要是介绍正确修复以损坏的MySQL数据表的实际操作步骤,以下就是正文的介绍,希望会给你带来一些帮助在此方面。
    2011-01-01
  • MySQL中INSERT INTO的具体使用

    MySQL中INSERT INTO的具体使用

    INSERT INTO 是 MySQL 数据库中非常重要的一种 SQL 命令,用于将新行插入到表中,本文主要介绍了MySQL中INSERT INTO的具体使用,感兴趣的可以了解一下
    2024-03-03
  • Mysql子查询IN中使用LIMIT应用示例

    Mysql子查询IN中使用LIMIT应用示例

    有3张表,infor信息表,mconfig物料配置表,maaply物料申请表,要求是读出申请表中哪些人申请哪些物料,接下来为大家介绍下Mysql子查询IN中使用LIMIT
    2014-01-01
  • MySQL服务器线程数的查看方法详解

    MySQL服务器线程数的查看方法详解

    这篇文章主要介绍了MySQL服务器线程数的查看方法,结合实例形式分析了mysql线程数查看的相关命令、配置、参数及相关使用技巧,需要的朋友可以参考下
    2018-03-03
  • MySQL中易被我们忽略的细节

    MySQL中易被我们忽略的细节

    这篇文章主要为大家介绍了几处MySQL中易被我们误会的地方,分享给大家,一来为了有趣,二来为了不让自己踩坑。
    2016-07-07
  • CentOS7.x 安装mysql5.7 XtraBackUp备份工具使用命令详解

    CentOS7.x 安装mysql5.7 XtraBackUp备份工具使用命令详解

    这篇文章主要介绍了CentOS7.x 安装mysql5.7 XtraBackUp备份工具使用,本文给大家介绍了mysql安装过程及命令使用方法,需要的朋友可以参考下
    2022-04-04
  • MySQL多表查询的具体实例

    MySQL多表查询的具体实例

    这篇文章主要介绍了MySQL多表查询的具体实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-01-01
  • MySQL恢复中的几个问题解决方法

    MySQL恢复中的几个问题解决方法

    这篇文章主要介绍了MySQL恢复中的几个问题,需要的朋友可以参考下
    2016-01-01

最新评论