java实现AES ecb加密算法 给我一个完整的
时间: 2024-09-27 19:13:33 浏览: 31
在Java中,实现AES ECB(电子密码本模式,Electronic Codebook)加密算法涉及一些库,如Bouncy Castle或Java Cryptography Extension (JCE)。这里是一个简单的示例,展示如何使用Bouncy Castle进行AES ECB加密:
```java
import org.bouncycastle.jce.provider.BouncyCastleProvider;
import javax.crypto.Cipher;
import javax.crypto.spec.SecretKeySpec;
public class AES_ECB {
static {
Security.addProvider(new BouncyCastleProvider());
}
public static void main(String[] args) throws Exception {
String key = "0123456789abcdef0123456789ABCDEF"; // 16字节密钥,AES-128
byte[] data = "Hello, World!".getBytes();
SecretKeySpec secretKey = new SecretKeySpec(key.getBytes(), "AES");
Cipher cipher = Cipher.getInstance("AES/ECB/PKCS5Padding", "BC");
// 加密
cipher.init(Cipher.ENCRYPT_MODE, secretKey);
byte[] encryptedData = cipher.doFinal(data);
System.out.println("原始数据: " + new String(data));
System.out.println("加密后的数据: " + bytesToHex(encryptedData));
// 解密
cipher.init(Cipher.DECRYPT_MODE, secretKey);
byte[] decryptedData = cipher.doFinal(encryptedData);
System.out.println("解密后的数据: " + new String(decryptedData));
}
private static String bytesToHex(byte[] bytes) {
StringBuilder result = new StringBuilder();
for (byte b : bytes) {
result.append(String.format("%02x", b));
}
return result.toString();
}
}
```
在这个示例中,我们首先添加了Bouncy Castle提供的加密服务,然后创建了一个`SecretKeySpec`对象,指定加密算法(AES)和密钥。接着使用`Cipher`实例化AES ECB模式,并设置为加密模式。最后进行加密并打印结果。
如果你想要运行此代码,请确保已安装Bouncy Castle库。运行后,你可以看到原始字符串经过AES ECB加密后的十六进制形式。请注意,实际应用中应妥善保管和处理密钥,确保安全。
阅读全文