码迷,mamicode.com
首页 > 数据库 > 详细

mysql AES加密的使用

时间:2021-06-22 17:52:33      阅读:0      评论:0      收藏:0      [点我收藏+]

标签:into   creat   not   sql   from   engine   特点   摘要   encrypt   

建表如下:

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加密的使用

标签:into   creat   not   sql   from   engine   特点   摘要   encrypt   

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

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!