我正嘗試從本網站編程SHA256實現:http://bradconte.com/sha256_c 在MSP430 MCU板中。我正在使用開源的Energia IDE進行編程。SHA256在c中的實現
這是testcode:
unsigned char hash[32];
SHA256_CTX ctx;
sha256_init(&ctx);
sha256_update(&ctx,(unsigned char*)"abc",3);
sha256_final(&ctx,hash);
PrintHex(hash);
把它轉換爲十六進制
void PrintHex(unsigned char * data)
{
char tmp[16];
for (int i=0; i<32; i++) {
sprintf(tmp, "%02x",data[i]);
Serial.print(tmp);
}
}
的問題是,輸出始終是一個錯誤的散列碼。
這是輸出:
2bb53935edbba17dc04a04854518754d8a66484491b585b0d0700cd2512f5420
難道是testcode要不然,我做錯了什麼嗎?
什麼是你預期的結果? –
這是預計:'ba7816bf8f01cfea414140de5dae2223b00361a396177a9cb410ff61f20015ad'爲abc字符 – pattex007
你可以在你的桌面上使用普通編譯器測試你的代碼,看看是否有效? –