发布于2026-07-03 阅读(0)
扫一扫,手机访问
在Ubuntu上做Ja va数据加密,Ja va Cryptography Extension(JCE)框架是绕不开的工具。下面就用一个完整的AES加密解密示例,把整个过程拆开讲清楚。

第一步,先确认系统里已经装好了JDK。如果还没装,去Oracle官网下载对应Ubuntu版本的JDK安装包,按常规步骤配置好环境变量就行。这一步虽然基础,但漏掉的话后续所有操作都跑不起来。
第二步,新建一个Ja va文件,命名为EncryptionExample.ja va,把下面的代码完整贴进去:
import ja vax.crypto.Cipher;
import ja vax.crypto.KeyGenerator;
import ja vax.crypto.SecretKey;
import ja vax.crypto.spec.IvParameterSpec;
import ja va.nio.charset.StandardCharsets;
import ja va.util.Base64;
public class EncryptionExample {
public static void main(String[] args) throws Exception {
String originalText = "Hello, World!";
System.out.println("Original Text: " + originalText);
// 加密
String encryptedText = encrypt(originalText, "ThisIsASecretKey");
System.out.println("Encrypted Text: " + encryptedText);
// 解密
String decryptedText = decrypt(encryptedText, "ThisIsASecretKey");
System.out.println("Decrypted Text: " + decryptedText);
}
public static String encrypt(String plainText, String secretKey) throws Exception {
Cipher cipher = Cipher.getInstance("AES/CBC/PKCS5Padding");
SecretKey key = new SecretKeySpec(secretKey.getBytes(StandardCharsets.UTF_8), "AES");
IvParameterSpec iv = new IvParameterSpec(key.getEncoded());
cipher.init(Cipher.ENCRYPT_MODE, key, iv);
byte[] encryptedBytes = cipher.doFinal(plainText.getBytes(StandardCharsets.UTF_8));
return Base64.getEncoder().encodeToString(encryptedBytes);
}
public static String decrypt(String encryptedText, String secretKey) throws Exception {
Cipher cipher = Cipher.getInstance("AES/CBC/PKCS5Padding");
SecretKey key = new SecretKeySpec(secretKey.getBytes(StandardCharsets.UTF_8), "AES");
IvParameterSpec iv = new IvParameterSpec(key.getEncoded());
cipher.init(Cipher.DECRYPT_MODE, key, iv);
byte[] decodedBytes = Base64.getDecoder().decode(encryptedText);
byte[] decryptedBytes = cipher.doFinal(decodedBytes);
return new String(decryptedBytes, StandardCharsets.UTF_8);
}
}
这段代码用的是AES加密算法搭配CBC模式,也是生产环境里最常见的一种组合。注意密钥部分——示例里写的是明文密钥“ThisIsASecretKey”,实际项目里千万别这么干。密钥管理应该用更严谨的方式,比如从安全存储或密钥服务中读取,硬编码在代码里等于把锁的钥匙挂在门上。
第三步,打开终端,切换到EncryptionExample.ja va所在目录,先用ja vac EncryptionExample.ja va编译。编译通过后,再用ja va EncryptionExample运行。正常的话,你会看到三行输出:原始文本、加密后的密文(一串Base64编码的字符)、再解密回来的原始文本。
这只是一个入门演示,实际加密场景要考虑的远不止这些。比如密钥的生成和轮换、IV的随机性和安全传输、加密算法模式的选择(GCM模式比CBC更安全)、以及异常处理等等。生产环境请务必遵循业界安全最佳实践,别拿示例代码直接上线。
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
正版软件
正版软件
正版软件
正版软件
正版软件
1
2
3
7
8