p-a-h-a
Member
Не нашел такой темы на рунете, братья китайцы подсказали. (Первоисточник)
На Ардуино выглядит так:
В Serial:
На Ардуино выглядит так:
C++:
#include "rom/md5_hash.h" // для void md5_test
#include "mbedtls/md5.h" // для void mbed_tls_md5
int i, ret = 0;
unsigned char mbedtls_md5sum[16];
unsigned char content[] = "admin"; // Строка, md5 которой будем вычислять
void setup(){
Serial.begin(115200);
}
void md5_test(unsigned char *content) {
struct MD5Context md5;
MD5Init(&md5);
unsigned char hash[17]="";
MD5Update(&md5, content, strlen((const char *)content));
MD5Final(hash,&md5);
Serial.printf("\r\n************** MD5 Digest*******************\r\n");
for (i = 0; i < 16; i++)// В исходнике было 17 вместо 16 и выписывало лишних два ноля
{
Serial.printf("%02x",hash[i]);
}
}
void mbed_tls_md5(unsigned char *content,unsigned char *mbedtls_md5sum)
{
ret = mbedtls_md5_ret(content, strlen((const char *)content), mbedtls_md5sum);
if( ret != 0 )
Serial.printf( "mbedtls_md5_ret() failed\n" );
else
{
Serial.printf("\r\n************ mbedtls_md5_ret result ****************\r\n");
for (i = 0; i < 16;i++)
{
Serial.printf("%02x", mbedtls_md5sum[i]);
}
}
}
void loop(){
md5_test(content);
mbed_tls_md5(content, mbedtls_md5sum);
Serial.printf("\r\n************* END **************");
fflush(stdout);
delay(5000);
}
Код:
************** MD5 Digest*******************
21232f297a57a5a743894a0e4a801fc3
************ mbedtls_md5_ret result ****************
21232f297a57a5a743894a0e4a801fc3
************* END **************