HMAC SHA 256解码/编码问题

时间:2017-03-23 14:20:31

标签: vb.net arduino sha arduino-ide hmacsha1

嘿所有我想弄清楚为什么我的HAC-SHA-256加密和解密与我的Arduino代码不匹配到我的.net代码:

C#代码:

Dim message As String = "Hi There"
Dim expectedHex As String = ""

TextBox1.Text = (Convert.ToString("Ref : ") & expectedHex)

'Test out the HMAC hash method
Dim key As String = "61574d6b157f757d02457573556645750e0341481b127a07476303136c005145436c7b46651c6e4f4f040e1569464a794e534309097258550c17616075060950"
Dim hashHMACHex__1 As String = HashHMACHex(key, message)

TextBox2.Text = (Convert.ToString("HMAC: ") & hashHMACHex__1)

' Test out the SHA hash method
Dim innerKey As String = "61574d6b157f757d02457573556645750e0341481b127a07476303136c005145436c7b46651c6e4f4f040e1569464a794e534309097258550c17616075060950"
Dim outerKey As String = "0b3d27017f151f17682f1f193f0c2f1f64692b227178106d2d096979066a3b2f2906112c0f760425256e647f032c2013243929636318323f667d0b0a1f6c633a"
Dim hashSHAHex__2 As String = HashSHAHex(innerKey, outerKey, message)

TextBox3.Text=(Convert.ToString("SHA : ") & hashSHAHex__2)

Arduino代码:

char *myData = "61574d6b157f757d02457573556645750e0341481b127a07476303136c005145436c7b46651c6e4f4f040e1569464a794e534309097258550c17616075060950#(128)";

void printHash(uint8_t* hash) {
  int i;
  for (i=0; i<32; i++) {
    Serial.print("0123456789abcdef"[hash[i]>>4]);
    Serial.print("0123456789abcdef"[hash[i]&0xf]);
  }
  Serial.println();
}

uint8_t* hash;
  uint32_t a;
  unsigned long ms;
  Serial.println("Test: RFC4231 4.2");
  Serial.println("");
  Serial.print("Result:");
  ms = micros();
  Sha256.initHmac((uint8_t *)myData,128);
  Sha256.print("Hi There");
  printHash(Sha256.resultHmac());
  Serial.print(" Hash took : ");
  Serial.print((micros() - ms));
  Serial.println(" micros");
  Serial.println();

.net程序的输出是:

  

HMAC:2d484b68dae3866fbcbf182071c3bf5e86f40ab6c2f3bc72d69fe0d132bf771e

     

SHA:5929bc8b6968e763c7f23090f7d6194c4f1377bd8f6e4b781a5ecdb8e8f91f8f

Arduino输出:

  

结果:9a9f6119b41604441db0a75bad6c4e1653a4d00781d4b177e99fe850ad543051

我不确定.net程序中的 innerKey outterKey 是什么。这可能是我没有得到正确值的原因?

Attached是.net程序和arduino草图的完整代码。

0 个答案:

没有答案