首页 > 数据库技术 > 详细

mysql AES加密的使用

时间:2021-06-21 23:42:23      阅读:49      评论:0      收藏:0      [点我收藏+]

建表如下:

CREATE TABLE `aes_demo` (
  `id` int NOT NULL AUTO_INCREMENT,
  `name` varchar(255) COLLATE utf8_bin DEFAULT NULL,
  `password` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=utf8 COLLATE=utf8_bin;

使用如下sql插入一条数据:

INSERT INTO aes_demo (NAME, PASSWORD)
VALUES
    (
        tom,
        HEX(AES_ENCRYPT(666, 1))
    );

结果如下:

+----+------+----------------------------------+
| id | name | password                         |
+----+------+----------------------------------+
|  4 | tom  | 0A6187FF44BEB44F651AAD3BB4003360 |
+----+------+----------------------------------+

使用了AES加密函数,AES函数的两个参数分别是(待加密数据,密钥)。

注意:此处使用HEX函数转换是因为不转换直接插入会报错。

相应的解密查询如下:

SELECT
    AES_DECRYPT((UNHEX(PASSWORD)), 1) AS PASSWORD
FROM
    aes_demo;

结果如下:

+----------+
| PASSWORD |
+----------+
| 666      |
+----------+

备注:

AES是一种对称加密算法;

加密算法的特点是能够通过密钥正向加密和逆向解密;

而摘要算法只能正向的生成摘要,无法反向的还原回数据。

mysql AES加密的使用

原文:https://www.cnblogs.com/silenceshining/p/14916119.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!