不能明文传证件号码后端加密解密最简单的方式AES

一:生成密钥

private static final String ALGORITHM = "AES";

// 生成密钥

public static String generateKey() throws Exception {

KeyGenerator keyGen = KeyGenerator.getInstance(ALGORITHM);

// 初始化128位密钥

keyGen.init(128);

SecretKey secretKey = keyGen.generateKey();

return Base64.getEncoder().encodeToString(secretKey.getEncoded());

}

二:利用生成的密钥加密解密

public class SimpleAesUtil {

private static final String ALGORITHM = "AES";

private static String key="LKrFJ0OA8bYDCjIsPRju+A==";

// 加密

public static String encrypt(String data) throws Exception {

byte[] keyBytes = Base64.getDecoder().decode(key);

SecretKeySpec keySpec = new SecretKeySpec(keyBytes, ALGORITHM);

Cipher cipher = Cipher.getInstance(ALGORITHM);

cipher.init(Cipher.ENCRYPT_MODE, keySpec);

byte[] encryptedBytes = cipher.doFinal(data.getBytes());

return Base64.getEncoder().encodeToString(encryptedBytes);

}

// 解密

public static String decrypt(String encryptedData) throws Exception {

byte[] keyBytes = Base64.getDecoder().decode(key);

SecretKeySpec keySpec = new SecretKeySpec(keyBytes, ALGORITHM);

Cipher cipher = Cipher.getInstance(ALGORITHM);

cipher.init(Cipher.DECRYPT_MODE, keySpec);

byte[] decryptedBytes = cipher.doFinal(Base64.getDecoder().decode(encryptedData));

return new String(decryptedBytes);

}

public static void main(String[] args) throws Exception {

String originalText = "371502198906089802";

// 加密

String encrypted = encrypt(originalText);

System.out.println("加密结果: " + encrypted);

// 解密

String decrypted = decrypt(encrypted);

System.out.println("解密结果: " + decrypted);

}

三:结果

相关推荐
言慢行善几秒前
SpringBoot中的注解介绍
java·spring boot·后端
一勺菠萝丶2 分钟前
管理后台使用手册在线预览与首次登录引导弹窗实现
java·前端·数据库
feng_you_ying_li4 分钟前
C++11,{}的初始化情况与左右值及其引用
开发语言·数据结构·c++
xiaotao13111 分钟前
JS new 操作符完整执行过程
开发语言·前端·javascript·原型模式
TE-茶叶蛋15 分钟前
结合登录页-PHP基础知识点解析
android·开发语言·php
无巧不成书021815 分钟前
Java包(package)全解:从定义、使用到避坑,新手零基础入门到实战
java·开发语言·package·java包
身如柳絮随风扬26 分钟前
SpringMVC 异常处理?Spring 父子容器?
java·spring·mvc
WangJunXiang631 分钟前
Python网络编程
开发语言·网络·python
guhy fighting33 分钟前
new Map,Array.from,Object.entries的作用以及使用方法
开发语言·前端·javascript
lsx20240633 分钟前
操作系统统计
开发语言