加密算法
AES和RSA都是公认为安全的加密算法,在秘钥没有泄露的情况下,几乎不可能被破译(密钥的管理至关重要)。
/**
* 对称加密
*
* @throws Exception
*/
public static void AES() throws Exception {
KeyGenerator keyGen = KeyGenerator.getInstance("AES");
// 可选128位、192位和256位,128位的密钥长度已经足够用于许多应用场景
keyGen.init(128);
SecretKey secretKey = keyGen.generateKey();
Cipher cipher = Cipher.getInstance("AES");
cipher.init(Cipher.ENCRYPT_MODE, secretKey);
byte[] encryptedData = cipher.doFinal("123456789".getBytes());
cipher.init(Cipher.DECRYPT_MODE, secretKey);
byte[] decryptedData = cipher.doFinal(encryptedData);
// Base64不会遗漏二进制数据,可以转为可视数据
System.out.println("加密:" + Base64.getEncoder().encodeToString(encryptedData));
System.out.println("解密: " + new String(decryptedData));
}
/**
* 非对称加密
*
* @throws Exception
*/
public static void RSA() throws Exception {
KeyPairGenerator keyGen = KeyPairGenerator.getInstance("RSA");
// 最小512(不安全),推荐2048位及以上
keyGen.initialize(2048);
KeyPair keyPair = keyGen.generateKeyPair();
PublicKey publicKey = keyPair.getPublic();
PrivateKey privateKey = keyPair.getPrivate();
byte[] data = "123456789".getBytes();
Cipher cipher = Cipher.getInstance("RSA");
cipher.init(Cipher.ENCRYPT_MODE, publicKey);
byte[] encryptedData = cipher.doFinal(data);
cipher.init(Cipher.DECRYPT_MODE, privateKey);
byte[] decryptedData = cipher.doFinal(encryptedData);
System.out.println("加密:" + Base64.getEncoder().encodeToString(encryptedData));
System.out.println("解密: " + new String(decryptedData));
}
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 一个费力不讨好的项目,让我损失了近一半的绩效!
· 清华大学推出第四讲使用 DeepSeek + DeepResearch 让科研像聊天一样简单!
· 实操Deepseek接入个人知识库
· CSnakes vs Python.NET:高效嵌入与灵活互通的跨语言方案对比
· Plotly.NET 一个为 .NET 打造的强大开源交互式图表库