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