数据加密后如何查询

加密后的数据如何进行模糊查询?

SpringBoot 接口数据加解密技巧

使用Hutool开源工具类实现加密加密

AES加密解密

String content = "test中文";//随机生成密钥
byte[] key = SecureUtil.generateKey(SymmetricAlgorithm.AES.getValue()).getEncoded();//构建
AES aes = SecureUtil.aes(key);//加密
byte[] encrypt = aes.encrypt(content);
//解密
byte[] decrypt = aes.decrypt(encrypt);//加密为16进制表示
String encryptHex = des.encryptHex(content);
//解密为原字符串
String decryptStr = des.decryptStr(encryptHex);

DES加密解密

DES的使用方式与AES基本一致

String content = "test中文";//随机生成密钥
byte[] key = SecureUtil.generateKey(SymmetricAlgorithm.DES.getValue()).getEncoded();//构建
DES des = SecureUtil.des(key);//加密解密
byte[] encrypt = des.encrypt(content);
byte[] decrypt = des.decrypt(encrypt);//加密为16进制,解密为原字符串
String encryptHex = des.encryptHex(content);
String decryptStr = des.decryptStr(encryptHex);

AES加密解密工具类


import lombok.extern.slf4j.Slf4j;import javax.crypto.Cipher;
import javax.crypto.spec.SecretKeySpec;/*** 加密解密工具类** @author zhaoyang10* @date 2020/12/15*/
@Slf4j
public class AesUtil {private static final String KEY_AES = "AES";private static final int KEY_LENGTH = 16;/*** 加密*/public static String encrypt(String src, String key) {try {if (key == null || key.length() != KEY_LENGTH) {throw new IllegalArgumentException("密钥长度必须是16位");}byte[] raw = key.getBytes();SecretKeySpec skySpec = new SecretKeySpec(raw, KEY_AES);Cipher cipher = Cipher.getInstance(KEY_AES);cipher.init(Cipher.ENCRYPT_MODE, skySpec);byte[] encrypted = cipher.doFinal(src.getBytes());return byte2hex(encrypted);} catch (Exception e) {log.error("AES加密方法出错", e);}return null;}public static String decrypt(String src, String key) {try {if (key == null || key.length() != KEY_LENGTH) {throw new IllegalArgumentException("密钥长度必须是16位");}byte[] raw = key.getBytes();SecretKeySpec skySpec = new SecretKeySpec(raw, KEY_AES);Cipher cipher = Cipher.getInstance(KEY_AES);cipher.init(Cipher.DECRYPT_MODE, skySpec);byte[] encrypted1 = hex2byte(src);byte[] original = cipher.doFinal(encrypted1);return new String(original);} catch (Exception e) {log.error("AES解密出错", e);}return null;}public static byte[] hex2byte(String hex) {if (hex == null) {return new byte[0];}int l = hex.length();int n = 2;if (l % n == 1) {return new byte[0];}byte[] b = new byte[l / 2];for (int i = 0; i != l / n; i++) {b[i] = (byte) Integer.parseInt(hex.substring(i * 2, i * 2 + 2),16);}return b;}public static String byte2hex(byte[] b) {StringBuilder hs = new StringBuilder();String tmp;for (byte value : b) {tmp = (Integer.toHexString(value & 0XFF));if (tmp.length() == 1) {hs.append("0").append(tmp);} else {hs.append(tmp);}}return hs.toString().toUpperCase();}public static void main(String[] args) {String content = "http://s3zz.ad.weibo.com/license/1231xxqrq3rr44q.jpg#13121121231231";log.info("原内容 = {}", content);String encrypt = AesUtil.encrypt(content, "aWXoyC4UNb111111");log.info("加密后 = {}", encrypt);String decrypt = AesUtil.decrypt(encrypt, "aWXoyC4UNb111111");log.info("解密后 = {}", decrypt);}}

Java 加密解密工具类 数据加密后如何查询相关推荐

  1. java des加密解密_Java实现的DES加密解密工具类实例

    本文实例讲述了Java实现的DES加密解密工具类.分享给大家供大家参考,具体如下: 一个工具类,很常用,不做深入研究了,那来可直接用 DesUtil.java package lsy; import ...

  2. java字符串加密解密工具类

    /*** 字符串加密解密工具类** @author guyuqiang* @date 2021-06-07*/ public class StringEncryptUtil {/*** 字符串默认键值 ...

  3. java des 加密工具的使用,Java中DES加密解密工具类的实现实例

    这篇文章主要介绍了Java实现的DES加密解密工具类,结合具体实例形式分析了Java实现的DES加密解密工具类定义与使用方法,需要的朋友可以参考下 本文实例讲述了Java实现的DES加密解密工具类.分 ...

  4. Java AES 加密解密工具类

    maven 引入一个依赖 <!-- https://mvnrepository.com/artifact/commons-codec/commons-codec --> <depen ...

  5. jwt加密解密工具类

    jwt 加密&解密工具类 引入依赖 <dependency><groupId>io.jsonwebtoken</groupId><artifactId ...

  6. EncryptUtil加密解密工具类,实测可以,复制粘贴皆可。全套代码加使用案例方法。

    EncryptUtil工具类utils: package deployment.utils;import deployment.constant.CommonConstant; import com. ...

  7. Prometheus:Java调用PromQL工具类(瞬时数据查询)

    目录 PostMan瞬时数据查询:Windows主机空闲内存量 请求 响应数据 Java:调用PromQL工具类(瞬时数据查询) Prometheus返回结果反序列化 Prometheus常用Prom ...

  8. 基于Java的(SM2_SM3_SM4)国密算法, 加密解密工具类及测试demo

    编写本文的同时借鉴了多位同学写的demo, 最后发现这位同学写的最详细, 放上该作者的链接, 原版链接: https://download.csdn.net/download/ererfei/9474 ...

  9. java aes 工具类_AESUtil Java AES 加密解密工具类

    package com.singlee.util; import javax.crypto.Cipher; import javax.crypto.spec.IvParameterSpec; impo ...

  10. 加密解密工具类(Java,DES)

    一个Java版的DES加密工具类,可以用来进行网络数据传输加密,保存密码的时候进行加密. import java.security.Key; import java.security.spec.Alg ...

最新文章

  1. 知识归纳,程序猿必备的21张(神经网络、线性代数、可视化等)数据挖掘速查表
  2. 【渝粤题库】陕西师范大学191203 法理学导论 作业
  3. windows和linux下,查看oracle SID的方法
  4. wireshark网卡权限_设置网卡属性用wireshark抓VLAN包
  5. 采样率,码率,帧率,I 帧,P 帧,B帧,RTP时间戳
  6. 怎么用class覆盖style样式
  7. 【maven】idea左侧External Libraries里,没有Maven的依赖包 代码飘红
  8. 马斯克火箭 SpaceX-API、程序员优雅赚钱项目……GitHub 热点速览
  9. vagrant虚拟机网络设置
  10. 负载均衡的几种方式_负载均衡的几种类型
  11. 文华财经彩波均线主图指标公式(指标公式源码)破解加密
  12. 在activity之间传递数据
  13. 2015年移动Web/HybridApp开发技能列表
  14. 《AngularJS深度剖析与最佳实践》一2.13 端到端测试
  15. 移动端切图内容包括什么_移动终端界面切图
  16. linux命令scp和sftp
  17. MATLAB函数——atan(x)和atan2(x)的区别
  18. 2022年轨道交通行业研究报告
  19. cesium加载wms、wmts、tms、wfs服务
  20. c语言0和1二进制,二进制0和1代表什么

热门文章

  1. iphone查看html源码的app,使用扩展App在Safari上查看源代码
  2. USB转232 转TTL概述
  3. 局域网计算机如何传输文件,局域网如何快速传输文件|同一个局域网传输文件的方法...
  4. 论文写作1:论第一篇SCI写作时的降重方法总结
  5. egg服务重启及child_process的使用
  6. ibm服务器如何进入u盘装系统,加密u盘在电脑上怎么打开ibm服务器u盘装系统
  7. 网站在线沟通工具,网站即时聊天工具-TTKEFU在线客服系统功能介绍
  8. 如何自动生成SpringBoot项目代码
  9. 软件工程之可行性研究报告
  10. 铁大课表 可行性研究报告