JavaHmacMD5算法的加密解密
时间: 2023-07-26 16:48:03 浏览: 39
Java中提供了HmacMD5算法的加密解密实现。具体代码如下:
```java
import javax.crypto.Mac;
import javax.crypto.spec.SecretKeySpec;
import java.security.InvalidKeyException;
import java.security.NoSuchAlgorithmException;
public class HmacMD5Util {
/**
* HmacMD5加密
*
* @param data 待加密数据
* @param key 密钥
* @return 加密后的数据
*/
public static byte[] encryptHmacMD5(byte[] data, byte[] key) {
try {
SecretKeySpec secretKeySpec = new SecretKeySpec(key, "HmacMD5");
Mac mac = Mac.getInstance("HmacMD5");
mac.init(secretKeySpec);
return mac.doFinal(data);
} catch (NoSuchAlgorithmException | InvalidKeyException e) {
e.printStackTrace();
}
return null;
}
/**
* HmacMD5解密
*
* @param data 待解密数据
* @param key 密钥
* @return 解密后的数据
*/
public static byte[] decryptHmacMD5(byte[] data, byte[] key) {
// HmacMD5算法不支持解密操作,只能加密
return null;
}
}
```
使用示例如下:
```java
public class TestHmacMD5Util {
public static void main(String[] args) {
String data = "hello world";
String key = "123456";
byte[] encryptResult = HmacMD5Util.encryptHmacMD5(data.getBytes(), key.getBytes());
System.out.println(Hex.encodeHexString(encryptResult));
}
}
```
其中,`Hex.encodeHexString(encryptResult)`用于将加密结果转为16进制字符串,需要引入Apache Commons Codec库。