java 实现 hmac-sha1 加密
时间: 2023-07-29 11:13:54 浏览: 85
HMAC-SHA1是一种常用的加密算法,可以使用Java中的javax.crypto库来实现。以下是Java实现HMAC-SHA1加密的示例代码:
```java
import javax.crypto.Mac;
import javax.crypto.spec.SecretKeySpec;
import java.security.InvalidKeyException;
import java.security.NoSuchAlgorithmException;
public class HmacSha1 {
public static void main(String[] args) {
String text = "hello world";
String key = "secret_key";
String hmacSha1 = hmacSha1(text, key);
System.out.println(hmacSha1);
}
public static String hmacSha1(String text, String key) {
try {
Mac hmac = Mac.getInstance("HmacSHA1");
SecretKeySpec secretKey = new SecretKeySpec(key.getBytes(), "HmacSHA1");
hmac.init(secretKey);
byte[] digest = hmac.doFinal(text.getBytes());
StringBuilder sb = new StringBuilder();
for (byte b : digest) {
sb.append(String.format("%02x", b));
}
return sb.toString();
} catch (NoSuchAlgorithmException | InvalidKeyException e) {
e.printStackTrace();
return null;
}
}
}
```
在这个示例中,我们首先定义了一个字符串text和一个密钥key,然后调用hmacSha1方法来获取HMAC-SHA1加密后的结果。在hmacSha1方法中,我们首先使用"javax.crypto.Mac"类获取HmacSHA1算法实例,然后使用密钥初始化该对象。接着,我们调用doFinal方法来计算HMAC-SHA1值,并将结果转换成十六进制字符串返回。
需要注意的是,HMAC-SHA1算法需要一个密钥来进行计算,密钥的长度应该不小于160位(20字节)。在实际应用中,密钥的生成和管理也是非常重要的,需要特别注意。
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)