当前位置:Gxlcms > 数据库问题 > mysql AES加密的使用

mysql AES加密的使用

时间:2021-07-01 10:21:17 帮助过:41人阅读

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   

人气教程排行