J'ai le code suivant écrit en Java
Mac mac = Mac.getInstance("HmacSHA1");
String secretKey ="sKey";
String content ="Hello";
byte[] secretKeyBArr = secretKey.getBytes();
byte[] contentBArr = content.getBytes();
SecretKeySpec secret_key = new SecretKeySpec(secretKeyBArr,"HmacSHA1");
byte[] secretKeySpecArr = secret_key.getEncoded();
mac.init(secret_key);
byte[] final = mac.doFinal(contentBArr);
Je veux faire le même exemple en C#. J'ai donc écrit le code suivant
HMACSHA1 hmacsha1 = new HMACSHA1();
string secretKey = "sKey";
string content = "Hello";
byte[] secretKeyBArr = Encoding.UTF8.GetBytes(secretKey);
byte[] contentBArr = Encoding.UTF8.GetBytes(content);
hmacsha1.Key = secretKeyBArr;
byte[] final = hmacsha1.ComputeHash(contentBArr);
Les résultats finaux ne sont pas identiques. secretKeyBArr et contentBArr sont des tableaux d'octets et leurs valeurs sont les mêmes dans les deux exemples. Ce que l'on ne connaît pas, c'est le SecretKeySpec passé à mac.init(). Alors, quelle est la classe équivalente en C# ?