之前不太了解arduino,使用第三方md5库加密。
https://github.com/tzikis/ArduinoMD5https://github.com/tzikis/ArduinoMD5
#include "MD5.h" //houyawei 2021.10.29 unsigned char* hash = MD5::make_hash((char *)md.c_str()); char *test = MD5::make_digest(hash, 16); printf("test:%s\r\n",test);
生产环境遇到了问题,加密次数过多会导致esp32概率性崩溃,无法在程序内修复,只能看门狗重启或断电重启恢复。此异常导致串口不断有错误数据。
之后看到arduino_esp32库里面自带md5加密算法的。
https://github.com/espressif/arduino-esp32/blob/master/cores/esp32/MD5Builder.hhttps://github.com/espressif/arduino-esp32/blob/master/cores/esp32/MD5Builder.h
#include "MD5Builder.h" MD5Builder md5; md5.begin(); md5.add(md); md5.calculate(); //const char *md5str = md5.toString().c_str(); //printf("%s\r\n",md5str); //houyawei
使用官方算法后没有再遇到而esp32异常的问题。
参考链接:
https://github.com/esp8266/Arduino/issues/1349https://github.com/esp8266/Arduino/issues/1349
---------houyawei 2021.10.29