0

我正在做一项任务,我必须使用 C 中的 OpenSSL EVP 库比较对无冲突 MAC 的蛮力攻击与单向属性 MAC 的比较。澄清一下,我不是在寻找任何帮助分配,只是执行EVP。

我创建了以下代码,它创建了给定输入字符串的哈希:

OpenSSL_add_all_digests();

// Set Hash Digest

md = EVP_get_digestbyname("MD5");

// Create Hash
EVP_MD_CTX_init(&c);
EVP_DigestInit_ex(&c, md, NULL);
EVP_DigestUpdate(&c, plaintext, strlen(plaintext)); 
EVP_DigestFinal_ex(&c, hash, &hash_len);
EVP_MD_CTX_cleanup(&c);

这完全符合创建哈希的需要。如何设置单向与无碰撞的属性?我无法在文档中找到任何具体内容,只需要围绕这一点进行澄清。

4

1 回答 1

1

我认为您将算法的属性与对象的属性或 - 在 C 术语中 - 上下文混淆了。MD5 具有单向特性,就像太阳具有发出淡黄色光的特性一样。您不能删除或配置该属性。所以你需要使用不同的哈希方法,而不是配置一个特定的。

请注意,MD5 本身不是 MAC(HMAC-MD5 是),它是一种安全散列算法。

于 2015-11-30T17:17:31.917 回答