mysql AES加密的使用
时间:2021-06-22 17:52:33
收藏: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是一种对称加密算法;
加密算法的特点是能够通过密钥正向加密和逆向解密;
而摘要算法只能正向的生成摘要,无法反向的还原回数据。
评论(0)