MD5

头文件

#include "mln_md5.h"

模块名

md5

函数

mln_md5_init

void mln_md5_init(mln_md5_t *m);

描述:初始化mln_md5_t结构m

返回值:无

mln_md5_new

mln_md5_t *mln_md5_new(void);

描述:创建并初始化mln_md5_t结构,该结构由malloc分配而来。

返回值:成功则返回mln_md5_t结构指针,否则返回NULL

mln_md5_pool_new

mln_md5_t *mln_md5_pool_new(mln_alloc_t *pool);

描述:创建并初始化mln_md5_t结构,该结构由pool指定的内存池分配而来。

返回值:成功则返回mln_md5_t结构指针,否则返回NULL

mln_md5_free

void mln_md5_free(mln_md5_t *m);

描述:释放mln_md5_t结构m的内存,m应由mln_md5_new创建而来。

返回值:无

mln_md5_pool_free

void mln_md5_pool_free(mln_md5_t *m);

描述:释放mln_md5_t结构m的内存,m应由mln_md5_pool_new创建而来。

返回值:无

mln_md5_calc

void mln_md5_calc(mln_md5_t *m, mln_u8ptr_t input, mln_uauto_t len, mln_u32_t is_last);

描述:计算md5值。该函数可以被多次调用用来生成一个MD5值。其中:

  • m 由上述函数初始化而来
  • input要被计算MD5的数据
  • len input的长度
  • is_last 是否是最后一次调用。由于可以对一个较大数据分多次进行计算出一个MD5值,因此用该参数表示是否是最后一批数据。

被计算的MD5被存放在m中。

返回值:无

mln_md5_tobytes

void mln_md5_tobytes(mln_md5_t *m, mln_u8ptr_t buf, mln_u32_t len);

描述:将计算好的MD5值以二进制形式写入buflen指定的内存区中。

返回值:无

mln_md5_tostring

void mln_md5_tostring(mln_md5_t *m, mln_s8ptr_t buf, mln_u32_t len);

描述:将计算好的MD5值以字符串形式写入buflen指定的内存区中。

返回值:无

mln_md5_dump

void mln_md5_dump(mln_md5_t *m);

描述:将MD5相关信息输出到标准输出上。

返回值:无

示例

#include <stdio.h>
#include "mln_md5.h"

int main(int argc, char *argv[])
{
    mln_md5_t m;
    char text[] = "Hello";
    char output[33] = {0};//MD5计算结果一共16字节,改为字符串输出则是二进制的两倍,因此是32字节,多一字节用于\0

    mln_md5_init(&m);
    mln_md5_calc(&m, (mln_u8ptr_t)text, sizeof(text)-1, 1);
    mln_md5_tostring(&m, output, sizeof(output));
    printf("%s\n", output);

    return 0;
}

results matching ""

    No results matching ""