「这是我参与11月更文挑战的第8天,活动详情查看:2021最后一次更文挑战」
MD5简介
MD5(英语:MD5 Message-Digest Algorithm)信息摘要算法,可以产生出一个128位(16字节)的散列值(hash value)一种被广泛使用的、用于确保信息传输完整一致密码散列函数。
MD5算法因其普遍、稳定、快速的特点,仍广泛应用于普通数据的加密保护领域
消息摘要算法介绍
消息摘要算法的主要特征是加密过程不需要密钥,并且经过加密的数据无法被解密,只有输入相同的明文数据经过相同的消息摘要算法才能得到相同的密文。消息摘要算法不存在密钥的管理与分发问题,适合于分布式网络上使用。由于其加密计算的工作量相当可观,所以以前的这种算法通常只用于数据量有限的情况下的加密,例如计算机的口令就是用不可逆加密算法加密的。近年来,随着计算机性能的飞速改善,加密速度不再成为限制这种加密技术发展的桎梏,因而消息摘要算法应用的领域不断增加。
消息摘要算法主要应用在“数字签名”领域,作为对明文的摘要算法。著名的摘要算法有RSA公司的MD5算法和SHA-1算法及其大量的变体。
-- =====================测试MD5加密=======================
-- MD5信息摘要算法
CREATE TABLE `testMD5 01`(
`id` INT(4) NOT NULL,
`name` VARCHAR(10) NOT NULL,
`pwd` VARCHAR(50) NOT NULL,
PRIMARY KEY(`id`)
)ENGINE=INNODB DEFAULT CHARSET=utf8
-- 明文密码,平常我们登陆的时候都是带有密码的,但是纯密码保存在数据库中明显是不太安全的
INSERT INTO `testmd5 01` VALUES (1,'张san','123456'),(2,'张六','123456'),(3,'李四','123456'),(4,'王五','123456')
-- 加密方式一:修改时加密 在MySQL中用来进行md5加密的函数,函数名为md5
UPDATE `testmd5 01` SET pwd =MD5(pwd) WHERE id=2 -- 14e1b600b1fd579f47433b88e8d85291
-- 加密方式二:在插入的时候加密
INSERT INTO `testmd5 01` VALUES (6,'huawei',MD5(123456))
INSERT INTO `testmd5 01` VALUES (7,'oppo',MD5(123456789))
-- 如何校验 将用户传递进来的密码,进行MD5加密,然后比对加密后的值(传递进来的值一样,加密后的值也一样)
-- 接收用户传来的用户名和密码
SELECT * FROM `testmd5 01` WHERE `name`='oppo' AND pwd=MD5('123456789')-- 25f9e794323b453885f5181f1b624d0b
MD5加密后的数据: