代码拉取完成,页面将自动刷新
同步操作将从 huangduirong/opensource_damo 强制同步,此操作会覆盖自 Fork 仓库以来所做的任何修改,且无法恢复!!!
确定后同步将在后台操作,完成时将刷新页面,请耐心等待。
#include <stdbool.h>
#include <string.h>
#include <stdio.h>
#include <sys/time.h>
#include "nettle/md5.h"
#define SHOW_LOG false
#define MAX_BLOCK_SZ 1024*1024*1 // 每次hash分段的最大长度
// nettle包中的MD5接口使用
int nettle_md5_damo(unsigned int times, uint8_t *data)
{
struct md5_ctx ctx;
char hex_digest[MD5_DIGEST_SIZE * 2 + 1];
uint8_t digest[MD5_DIGEST_SIZE];
const uint8_t *data_pt;
size_t length = strlen(data);
size_t total_len = 0;
if (SHOW_LOG)
printf("===========This is test for nettle MD5: %s\n", data);
md5_init(&ctx);
do
{
data_pt = data + total_len;
// 分段输入,每段大小为MAX_BLOCK_SZ
if (total_len + MAX_BLOCK_SZ <= length)
{
md5_update(&ctx, MAX_BLOCK_SZ, data_pt);
total_len += MAX_BLOCK_SZ;
}
else
{
md5_update(&ctx, length-total_len, data_pt);
total_len = length;
}
} while (total_len < length);
md5_digest(&ctx, MD5_DIGEST_SIZE, digest);
if (times <= 5)
{
for (int i = 0; i < MD5_DIGEST_SIZE; i++)
{
sprintf(hex_digest + i * 2, "%02x", digest[i]);
}
printf("MD5: %s\n", hex_digest);
}
return 0;
}
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。