1
public static string HashToString(string message, byte[] key)
{
byte[] b=new HMACSHA512(key).ComputeHash(Encoding.UTF8.GetBytes(message));
return Convert.ToBase64String(b);
}
client.DefaultRequestHeaders.Add( “X-散列”,散列);
var encryptedContent = DataMotion.Security.Encrypt(key,Convert.FromBase64String(iv),serializedModel);
var request = client.PostAsync(ApiUrlTextBox.Text,encryptedContent,new JsonMediaTypeFormatter());
在Java:
protected String hashToString(String serializedModel, byte[] key) {
String result = null;
Mac sha512_HMAC;
try {
sha512_HMAC = Mac.getInstance("HmacSHA512");
SecretKeySpec secretkey = new SecretKeySpec(key, "HmacSHA512");
sha512_HMAC.init(secretkey);
byte[] mac_data = sha512_HMAC.doFinal(serializedModel.getBytes("UTF-8"));
result = Base64.encodeBase64String(mac_data);
}catch(Exception e){
}
}
O/P:YE + AZPqaKrU14pui4U5gBCiAbegNvLVjzVdGK3rwG9QVzqKfIgyWBDTncORkNND3DA8jPba5xmC7B5OUwZEKlQ ==
我已经基于C#编写的代码hashtostring方法在Java。这是否正确? (输出是不同的,因为每个过程在两种情况下都是动态的)。
取决于你想要什么archieve做替换Java代码以下行。如果你想确保哈希密码,你应该阅读:https://crackstation.net/hashing-security.htm – user743414
我给json对象作为输入和密钥。 – user3635271
然后它看起来不错,顺便说一句。我不是java专家。你想做什么?你想散列一个密码,然后检查一个给定的密码是否正确?如果是这样,我强烈建议更改该代码。 – user743414