场景:在模糊查询电话号码的时候,发现电话号码是进行加密过的,而传进来的参数却是明文的
PS:作为一个合格的程序员对用户的一些敏感数据都要进行加密处理操作
比如:姓名、手机号、身份证号等等。

1、客户端一般是这样的

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

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对加密字段模糊查询内容请搜索以前的文章或继续浏览下面的相关文章希望大家以后多多支持!