【发布时间】:2013-06-26 17:01:30
【问题描述】:
我必须转换一个对字符串进行哈希处理的 JAVA 函数。
这是一个函数:
private static String hmacSha256(String value, String key) throws NoSuchAlgorithmException, InvalidKeyException {
byte[] keyBytes = key.getBytes();
SecretKeySpec signingKey = new SecretKeySpec(keyBytes, "HmacSHA256");
Mac mac = Mac.getInstance("HmacSHA256");
mac.init(signingKey);
byte[] rawHmac = mac.doFinal(value.getBytes());
return String.format("%0" + (rawHmac.length << 1) + "x", new BigInteger(1, rawHmac));
}
我的疑问是:这个函数有2个参数:
- 字符串值:要加密的字符串
- 字符串键:这是另一个键
我已经用过Sha256,但我总是只用一个参数(一个字符串加密)
请问,我该如何用 c# 编写这个函数,或者有谁能给我解释一下逻辑吗?
谢谢
【问题讨论】:
-
hmac 不是哈希,它是基于哈希的代码en.wikipedia.org/wiki/Hash-based_message_authentication_code。