MySQL 中的单向加密函数

PASSWORD()

PASSWORD() 返回加密的密码,此函数已经被废弃并在MySQL8.0之后被移除。以下是笔者在不同版本mysql服务器测试的结果:

mysql> select version();
+-----------+
| version() |
+-----------+
| 5.7.26    |
+-----------+
1 row in set (0.03 sec)

mysql> select password('122');
+-------------------------------------------+
| password('122')                           |
+-------------------------------------------+
| *652552781BA557B50DDDA5C3633D49FBC5A50081 |
+-------------------------------------------+
1 row in set, 1 warning (0.00 sec)

mysql> show warnings;
+---------+------+-------------------------------------------------------------------+
| Level   | Code | Message                                                           |
+---------+------+-------------------------------------------------------------------+
| Warning | 1681 | 'PASSWORD' is deprecated and will be removed in a future release. |
+---------+------+-------------------------------------------------------------------+
1 row in set (0.00 sec)
mysql> select version();
+-----------+
| version() |
+-----------+
| 8.0.15    |
+-----------+
1 row in set (0.03 sec)

mysql> select password('122');
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '('122')' at line 1

MD5()

mysql> select md5('123456'),md5(123456)\G
*************************** 1. row ***************************
md5('123456'): e10adc3949ba59abbe56e057f20f883e
  md5(123456): e10adc3949ba59abbe56e057f20f883e
1 row in set (0.04 sec)

MD5函数会将其中的数据始终按照字符来处理,而且,在参数是表达式的情况下会先执行表达式,然后将表达式结果加密:

mysql> select md5(123450+6);
+----------------------------------+
| md5(123450+6)                    |
+----------------------------------+
| e10adc3949ba59abbe56e057f20f883e |
+----------------------------------+
1 row in set (0.03 sec)

SHA 加密

SHA等同于SHA1加密。

mysql> select SHA('123'),SHA1('123') \G
*************************** 1. row ***************************
 SHA('123'): 40bd001563085fc35165329ea1ff5c5ecbdbbeef
SHA1('123'): 40bd001563085fc35165329ea1ff5c5ecbdbbeef
1 row in set (0.03 sec)

SHA2加密

SHA2(str, hash_length)
hash_length支持的值224, 256, 384, 512, or 0。0等同于256。

mysql> select SHA2('123456', 0),SHA2('123456',256) \G
*************************** 1. row ***************************
 SHA2('123456', 0): 8d969eef6ecad3c29a3a629280e686cf0c3f5d5a86aff3ca12020c923adc6c92
SHA2('123456',256): 8d969eef6ecad3c29a3a629280e686cf0c3f5d5a86aff3ca12020c923adc6c92
1 row in set (0.03 sec)

mysql> select SHA2('123456', 224),SHA2('123456',256),SHA2('123456',384),SHA2('123456',512)\G
*************************** 1. row ***************************
SHA2('123456', 224): f8cdb04495ded47615258f9dc6a3f4707fd2405434fefc3cbf4ef4e6
 SHA2('123456',256): 8d969eef6ecad3c29a3a629280e686cf0c3f5d5a86aff3ca12020c923adc6c92
 SHA2('123456',384): 0a989ebc4a77b56a6e2bb7b19d995d185ce44090c13e2984b7ecc6d446d4b61ea9991b76a4c2f04b1b4d244841449454
 SHA2('123456',512): ba3253876aed6bc22d4a6ff53d8406c6ad864195ed144ab5c87621b6c233b548baeae6956df346ec8c17f5ea10f35ee3cbc514797ed7ddd3145464e2a0bab413
1 row in set (0.04 sec)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值