帮助中心/最新通知

质量为本、客户为根、勇于拼搏、务实创新

< 返回文章列表

【服务器相关】mysql如何对已经加密的字段进行模糊查询详解

发表时间:2025-06-16 03:46:00 小编:主机乐-Yutio
  • 问题:但是加密之后我们怎么来查询呢?
  • 1、了解HEX 函数与UNHEX 函数
  • 2、了解AES_ENCRYPT函数与AES_DECRYPT函数
  • java工具类AES加解密同步使用
  • 总结
  • 场景:在模糊查询电话号码的时候,发现电话号码是进行加密过的,而传进来的参数却是明文的

    PS:作为一个合格的程序员对用户的一些敏感数据都要进行加密处理操作

    比如:姓名、手机号、身份证号等等。

    问题:但是加密之后我们怎么来查询呢?

    1、客户端一般是这样的

    1、了解HEX 函数与UNHEX 函数

    HEX 函数:将一个字符串或数字转换为十六进制格式的字符串

    UNHEX 函数:执行HEX(str)的逆运算。 即,它将参数中的每对十六进制数字解释为一个数字,并将其转换为该数字表示的字符。 结果字符将作为二进制字符串返回。

    演示:

    java工具类AES加解密同步使用


    package com.lezu.springboot.utils;

    import cn.hutool.crypto.symmetric.SymmetricAlgorithm;
    import cn.hutool.crypto.symmetric.SymmetricCrypto;

    import java.nio.charset.StandardCharsets;


    public class AesUtils {

    private static final byte[] key = “intel1234567890a”.getBytes(StandardCharsets.UTF_8);

    private static final SymmetricCrypto aes = new SymmetricCrypto(SymmetricAlgorithm.AES, key);


    public static String encryptHex(String str) {
    return aes.encryptHex(str);
    }


    public static String decryptStr(String str) {
    return aes.decryptStr(str);
    }

    public static void main(String[] args) {
    String plaintext = “小王”;
    String ciphertext = “183b2940aa6c6d2d73721415660c64c8”;

    String encryptHex = AesUtils.encryptHex(plaintext);
    System.out.println(“加密后: ” + encryptHex);

    String decryptStr = AesUtils.decryptStr(ciphertext);
    System.out.println(“解密后: ” + decryptStr);
    }

    //加密后: 183b2940aa6c6d2d73721415660c64c8
    //解密后: 小王
    }

    总结

    到此这篇关于mysql如何对已经加密的字段进行模糊查询的文章就介绍到这了,更多相关mysq对加密字段模糊查询内容请搜索以前的文章或继续浏览下面的相关文章希望大家以后多多支持!


    联系我们
    返回顶部