aboutsummaryrefslogtreecommitdiff
path: root/works/life/information-security-experiment/md5.cpp
blob: 97141279d73f93ade64ceead3b00987c16382251 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
#include <openssl/evp.h>

#include <iomanip>
#include <iostream>

int main() {
  EVP_MD_CTX *ctx = EVP_MD_CTX_create();
  EVP_DigestInit_ex(ctx, EVP_md5(), NULL);

  EVP_DigestUpdate(ctx, "abc", 3);

  unsigned char digest[EVP_MAX_MD_SIZE];
  unsigned int digest_size;
  EVP_DigestFinal_ex(ctx, digest, &digest_size);

  EVP_MD_CTX_destroy(ctx);

  std::cout << "MD5 digest of 'abc' is: " << std::hex << std::setfill('0');
  for (unsigned int i = 0; i < digest_size; i++) {
    std::cout << std::setw(2) << (int)digest[i];
  }
  std::cout << std::endl;

  return 0;
}