java crypto AES加密

时间: 2024-12-03 20:14:07 浏览: 60
在Java中,AES (Advanced Encryption Standard)是一种广泛使用的对称加密算法,用于保护数据的安全传输。以下是使用Java内置库`javax.crypto`进行AES加密的基本步骤: 1. 导入必要的库: ```java import javax.crypto.Cipher; import javax.crypto.spec.IvParameterSpec; import javax.crypto.spec.SecretKeySpec; ``` 2. 获取密钥和初始化向量 (IV): - 如果有预共享的密钥,可以创建`SecretKeySpec`实例。如果没有,可以使用`KeyGenerator`生成一个新的随机密钥。 - 初始化向量通常也是随机的,长度一般为128、192或256位。 ```java String key = "your_secret_key"; byte[] iv = new byte[16]; // 128-bit IV for AES-128 ``` 3. 创建密码块模式(Cipher)实例并设置操作模式(ENCRYPT_MODE或DECRYPT_MODE): ```java Cipher cipher = Cipher.getInstance("AES/CBC/PKCS5Padding"); cipher.init(Cipher.ENCRYPT_MODE, new SecretKeySpec(key.getBytes(), "AES"), new IvParameterSpec(iv)); ``` 4. 加密数据: - 将原始数据转换为字节数组,并通过`cipher.doFinal()`方法进行加密。 ```java byte[] plaintext = "Your data to encrypt".getBytes(); byte[] ciphertext = cipher.doFinal(plaintext); ``` 5. 存储密文及其IV(如果需要解密): - 通常会将IV一起存储,以便于后续解密。 6. 解密数据时,反向操作上述步骤即可: ```java cipher.init(Cipher.DECRYPT_MODE, new SecretKeySpec(key.getBytes(), "AES"), new IvParameterSpec(iv)); byte[] decryptedData = cipher.doFinal(ciphertext); ```
阅读全文

相关推荐