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

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

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

  • 相关阅读:
    K8S之traefik高级特性
    docker nginx-php容器镜像瘦身优化
    Dubbo-服务消费者初始化
    ThreadLocal 源码分析
    JVM 对象分配规则
    JVM GC 机制
    LockSupport
    自旋锁
    CAS
    Synchronized 监视器锁
  • 原文地址:https://www.cnblogs.com/silenceshining/p/14916119.html
Copyright © 2011-2022 走看看