generate HMAC-SHA1 in C#

后端 未结 2 773
攒了一身酷
攒了一身酷 2021-01-23 02:05

I am trying to make use of a REST API using C#.

The API creator has provided below pseudo code for hmac creation.

var key1 = sha1(body);
var key2 = key1         


        
2条回答
  •  死守一世寂寞
    2021-01-23 02:57

    Direct mapping of above code to C# would be something like:

    static string ComputeSignature(byte[] body, byte[] secret) {
        using (var sha1 = SHA1.Create())
        {
            var key1 = sha1.ComputeHash(body);
            var key2 = key1.Concat(secret).ToArray();
            var key3 = sha1.ComputeHash(key2);
            return Convert.ToBase64String(key3);
        }
    }
    

    If you have request body as a string, convert it to byte array using proper encoding, for example:

    var body = Encoding.UTF8.GetBytes(bodyAsString);
    

    If you have your secret as string - that depends on how api developer expects it to be converted to byte array. Most likely it's already HEX or base64-encoded string.

提交回复
热议问题