哈希函数是我们做校验时经常会用到的密码学工具,目前常用的工具有MD5、SHA1、SHA256、SHA512等。其中MD5已经被证实不安全,目前只能作为一种辅助的校验手段,而不能防篡改。下面介绍如何使用mbedTLS协议栈中的hash代码生成上述4种哈希摘要。
首先先到mbedTLS官网下载最新的协议栈源代码:https://tls.mbed.org/source-code
和上一篇AES一样,也是新建Visual Studio C工程,添加头文件mbedtls文件夹到工程目录下。然后是添加C文件,这次需要用到4个哈希计算,故添MD5.c、SHA1.c、SHA256.c、SHA512.c四个文件。
在主函数里添加简单demo,分别对“Hello, world!”进行哈希摘要计算:
#include "mbedtls/config.h"
#include "mbedtls/platform.h"
#include <stdio.h>
#define mbedtls_printf printf
#define MD5 0
#define SHA1 1
#define SHA256 2
#define SHA512 3
#define MODE SHA512
#include "mbedtls/md5.h"
#include"mbedtls/sha1.h"
#include"mbedtls/sha256.h"
#include"mbedtls/sha512.h"