본문 바로가기
놀기/esp32

esp32에서 MD5 hash 계산하기

by Hi~ 2021. 7. 22.

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);
}

 

결과는 아래와 같이 잘 나온다.

esp32 출력 결과

 

결과 비교용 화면

 

arduino IDE를 별로 좋아하지는 않지만 간단한 테스트에는 상당히 편하다. ^^

'놀기 > esp32' 카테고리의 다른 글

ImportError: No module named serial 문제 해결  (0) 2021.07.13

댓글