android sha256 java算法
时间: 2024-07-08 22:00:54 浏览: 148
SHA-256 是Secure Hash Algorithm 256位版本,是一种安全的哈希函数,常用于 Android 应用程序中生成签名或校验数据完整性。在 Java 中,Android 提供了 `java.security.MessageDigest` 类来支持 SHA-256 算法。以下是一个简单的示例,展示如何使用 Java 对字符串进行 SHA-256 加密:
```java
import javax.crypto.Mac;
import javax.crypto.spec.SecretKeySpec;
import java.security.InvalidKeyException;
import java.security.NoSuchAlgorithmException;
import java.util.Base64;
public class SHA256Hash {
public static String getSHA256(String input) throws NoSuchAlgorithmException, InvalidKeyException {
try {
// 创建一个 HMAC-SHA256 实例,使用 Base64 编码输出
Mac sha256HMAC = Mac.getInstance("HmacSHA256");
SecretKeySpec secretKey = new SecretKeySpec("your-secret-key".getBytes(), "HmacSHA256");
sha256HMAC.init(secretKey);
byte[] hashBytes = sha256HMAC.doFinal(input.getBytes());
return Base64.getEncoder().encodeToString(hashBytes);
} catch (Exception e) {
throw new RuntimeException("Failed to generate SHA-256 hash", e);
}
}
}
// 使用示例
String originalData = "Hello, Android!";
String hashedData = SHA256Hash.getSHA256(originalData);
```
在这个示例中,你需要替换 "your-secret-key" 为你的密钥。这个密钥通常用于加密和验证应用程序数据。
阅读全文