• Уважаемые посетители сайта esp8266.ru!
    Мы отказались от размещения рекламы на страницах форума для большего комфорта пользователей.
    Вы можете оказать посильную поддержку администрации форума. Данные средства пойдут на оплату услуг облачных провайдеров для сайта esp8266.ru
  • Система автоматизации с открытым исходным кодом на базе esp8266/esp32 микроконтроллеров и приложения IoT Manager. Наша группа в Telegram

Библиотека md5.h

mishgan

Member
Есть ли аналог ардуиновой библиотеки MD5.h для esp8266?
Код:
#include <MD5.h>
void setup()
{
  Serial.begin(9600);
  unsigned char* hash=MD5::make_hash("hello world");
  char *md5str = MD5::make_digest(hash, 16);
  Serial.println(String(md5str));
}
На ардуино мега скетч работает нормально. Меняю на nodeMCU 1.0 и получаю ошибку

In file included from MD5_Hash.ino:1:0:
C:\Documents and Settings\Admin\Application Data\Arduino15\packages\esp8266\hardware\esp8266\2.2.0\cores\esp8266/MD5.h:31:3: error: 'uint32_t' does not name a type
uint32_t state[4];
^
C:\Documents and Settings\Admin\Application Data\Arduino15\packages\esp8266\hardware\esp8266\2.2.0\cores\esp8266/MD5.h:32:3: error: 'uint32_t' does not name a type
uint32_t count[2];
^
C:\Documents and Settings\Admin\Application Data\Arduino15\packages\esp8266\hardware\esp8266\2.2.0\cores\esp8266/MD5.h:33:3: error: 'uint8_t' does not name a type
uint8_t buffer[64];
^
C:\Documents and Settings\Admin\Application Data\Arduino15\packages\esp8266\hardware\esp8266\2.2.0\cores\esp8266/MD5.h:37:41: error: 'uint8_t' has not been declared
extern void MD5Update (md5_context_t *, uint8_t *, uint16_t);
^
C:\Documents and Settings\Admin\Application Data\Arduino15\packages\esp8266\hardware\esp8266\2.2.0\cores\esp8266/MD5.h:37:52: error: 'uint16_t' has not been declared
extern void MD5Update (md5_context_t *, uint8_t *, uint16_t);
^
C:\Documents and Settings\Admin\Application Data\Arduino15\packages\esp8266\hardware\esp8266\2.2.0\cores\esp8266/MD5.h:38:23: error: variable or field 'MD5Final' declared void
extern void MD5Final (uint8_t [16], md5_context_t *);
^
C:\Documents and Settings\Admin\Application Data\Arduino15\packages\esp8266\hardware\esp8266\2.2.0\cores\esp8266/MD5.h:38:23: error: 'uint8_t' was not declared in this scope
C:\Documents and Settings\Admin\Application Data\Arduino15\packages\esp8266\hardware\esp8266\2.2.0\cores\esp8266/MD5.h:38:51: error: expected primary-expression before '*' token
extern void MD5Final (uint8_t [16], md5_context_t *);
^
C:\Documents and Settings\Admin\Application Data\Arduino15\packages\esp8266\hardware\esp8266\2.2.0\cores\esp8266/MD5.h:38:52: error: expected primary-expression before ')' token
extern void MD5Final (uint8_t [16], md5_context_t *);
^
MD5_Hash.ino: In function 'void setup()':
MD5_Hash:5: error: 'MD5' has not been declared
MD5_Hash:6: error: 'MD5' has not been declared
'MD5' has not been declared
 
Последнее редактирование:

Юрий Ботов

Moderator
Команда форума
судя по ошибкам надо перед подключением include определить использующиеся в нем типы: uint8_t и uint32_t
перед include вставьте:
typedef unsigned int uint32_t;
typedef unsigned short uint16_t;
typedef unsigned char uint8_t;

по идее после этого все заработает, если нет других ошибок.
 
Сверху Снизу