java sha256加密获取16进制字符串
时间: 2024-01-28 11:03:56 浏览: 295
以下是使用Java实现SHA-256加密并获取16进制字符串的示例代码:
```java
java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;
public class SHA256Util {
public static String getSHA256HexString(String input) {
try {
创建SHA-256加密对象
MessageDigest sha256 = MessageDigest.getInstance("SHA-256");
// 将输入字符串转换为字节数组
byte[] inputBytes = input.getBytes();
// 使用SHA-256算法计算摘要
byte[] hashBytes = sha256.digest(inputBytes);
// 将摘要转换为16进制字符串
StringBuilder hexString = new StringBuilder();
for (byte b : hashBytes) {
String hex = Integer.toHexString(0xff & b);
if (hex.length() == 1) {
hexString.append('0');
}
hexString.append(hex);
}
return hexString.toString();
} catch (NoSuchAlgorithmException e) {
// SHA-256算法不存在时抛出NoSuchAlgorithmException异常
throw new RuntimeException(e);
}
}
}
```
使用示例:
```java
String input = "hello world";
String sha256Hex = SHA256Util.getSHA256HexString(input);
System.out.println(sha256Hex); // 输出:b94d27b9934d3e08a52e52d7da7dabfac484efe37a5380ee9088f7ace2efcde9
```
上述代码中,将输入字符串转换为字节数组后,使用SHA-256算法计算摘要,得到一个长度为32字节的字节数组。然后将每个字节转换为两位的16进制字符串,最终得到一个长度为64的16进制字符串。
阅读全文