zoukankan      html  css  js  c++  java
  • mysql AES加密的使用

    建表如下:

    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是一种对称加密算法;

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

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

  • 相关阅读:
    走进AngularJs(二) ng模板中常用指令的使用方式
    mysql知识汇总
    存储动态数据时,数据库的设计方法
    js判断密码强度
    svg―Raphael.js Library(一)
    常用js代码
    IE6实现图片或背景的圆角效果
    巧用css border
    IE6下的效果
    理解盒模型
  • 原文地址:https://www.cnblogs.com/silenceshining/p/14916119.html
Copyright © 2011-2022 走看看