100字范文,内容丰富有趣,生活中的好帮手!
100字范文 > Java 加密解密工具类 数据加密后如何查询

Java 加密解密工具类 数据加密后如何查询

时间:2023-01-16 21:39:24

相关推荐

Java 加密解密工具类 数据加密后如何查询

数据加密后如何查询

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

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 /12/15*/@Slf4jpublic 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./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);}}

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。