java加密解密
package com.pg;
import com.pg.utils.CommonUtils;
import com.sun.org.apache.xerces.internal.impl.dv.util.Base64;
import javax.crypto.BadPaddingException;
import javax.crypto.Cipher;
import javax.crypto.IllegalBlockSizeException;
import javax.crypto.NoSuchPaddingException;
import javax.crypto.spec.SecretKeySpec;
import java.nio.charset.StandardCharsets;
import java.security.InvalidKeyException;
import java.security.NoSuchAlgorithmException;
public class desOrAesDemo {
public static void main(String[] args) throws Exception {
String text = "13211112222";
String key = "12345678";//des必须8字节
// 算法/模式/填充 默认 DES/ECB/PKCS5Padding
String transformation = "DES";
String key1 = "1234567812345678";//aes必须16字节
String transformation1 = "AES";
String key2 = "123456781234567812345678";//TripleDES使用24字节的key
String transformation2 = "TripleDes";
String extracted = CommonUtils.extracted(text, key, transformation, true);
System.out.println("DES加密:" + extracted);
String extracted1 = CommonUtils.extracted(extracted, key, transformation, false);
System.out.println("解密:" + extracted1);
// String extracted = extracted(text, key, transformation, true);
// System.out.println("DES加密:" + extracted);
// String extracted1 = extracted(extracted, key, transformation, false);
// System.out.println("解密:" + extracted1);
// String extracted2 = extracted(text, key1, transformation1, true);
// System.out.println("AES加密:" + extracted2);
// String extracted3 = extracted(extracted2, key1, transformation1, false);
// System.out.println("解密:" + extracted3);
//
// String extracted4 = extracted(text, key2, transformation2, true);
// System.out.println("Triple Des加密:" + extracted4);
// String extracted5 = extracted(extracted, key2, transformation2, false);
// System.out.println("解密:" + extracted5);
}
/**
* @param text 明文/base64密文
* @param key 密钥
* @param transformation 转换方式
* @param mode 加密/解密
*/
// private static String extracted(String text, String key, String transformation, boolean mode) throws NoSuchAlgorithmException, NoSuchPaddingException, InvalidKeyException, IllegalBlockSizeException, BadPaddingException {
// Cipher cipher = Cipher.getInstance(transformation);
// // key 与给定的密钥内容相关联的密钥算法的名称
// SecretKeySpec secretKeySpec = new SecretKeySpec(key.getBytes(), transformation);
// //Cipher 的操作模式,加密模式:ENCRYPT_MODE、 解密模式:DECRYPT_MODE、包装模式:WRAP_MODE 或 解包装:UNWRAP_MODE)
// cipher.init(mode ? Cipher.ENCRYPT_MODE : Cipher.DECRYPT_MODE, secretKeySpec);
// byte[] bytes = cipher.doFinal(mode ? text.getBytes(StandardCharsets.UTF_8) : Base64.decode(text));
// return mode ? Base64.encode(bytes) : new String(bytes);
// }
}
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· winform 绘制太阳,地球,月球 运作规律
· 上周热点回顾(3.3-3.9)