esp32와 다른 장치 간에 데이터 전송이 필요한데 최소한 MD5 hash 값을 넣어 데이터의 유효성 검사가 필요할 것 같아 MD5 테스트를 해보았다.
arduino IDE에 esp32 설정이 되어 있다는 전제 하에, 아래와 같이 코드를 작성하면 MD5 테스트를 할 수 있다. "mbedtls/md5.h"는 esp32 설정 시에 설치되는 esp-idf 내에 있어 별도로 설치할 필요는 없다.
input 데이터로 0x00부터 0x0F까지의 16byte를 넣고 계산하고 결과를 출력하는 방식이다.
#include "mbedtls/md5.h"
void test_md5() {
#define MD5_TEST_INPUT_LEN (16)
unsigned char input[MD5_TEST_INPUT_LEN] = {
0x00, 0x01, 0x02, 0x03,
0x04, 0x05, 0x06, 0x07,
0x08, 0x09, 0x0A, 0x0B,
0x0C, 0x0D, 0x0E, 0x0F
};
unsigned char output[16] = { 0, };
int rtn = mbedtls_md5_ret(input, MD5_TEST_INPUT_LEN, output);
for (unsigned char i = 0; i < 16; i++) {
printf("0x%02X ", output[i]);
}
printf("\n");
}
void setup() {
Serial.begin(115200);
test_md5();
}
void loop() {
delay(5000);
}
결과는 아래와 같이 잘 나온다.
arduino IDE를 별로 좋아하지는 않지만 간단한 테스트에는 상당히 편하다. ^^
'놀기 > esp32' 카테고리의 다른 글
ImportError: No module named serial 문제 해결 (0) | 2021.07.13 |
---|
댓글