c - C 中的加密 hmac 结果比 C# 短

标签 c hmac sha256

有时您必须实现 C 代码和加密,因此我的 hmac256 或 sha2_hmac 实现的 C 代码实现存在问题:

unsigned char key[19] = { "abcdef" };
size_t keylen = 18;
unsigned char input[64] = {"123456789"}; 
size_t ilen = 63;         
unsigned char output[32];
int is224 = 0;


sha2_hmac(key, keylen, input, ilen, output, is224);

char result[64] = {};
char result2[64] = {};

for(int j = 0; j < 32; j++) {
        sprintf(result, "%X", output[j]);
        strcat(result2, result);
}

但是当我将其与 C# 代码进行比较时,结果太短了。

最佳答案

您必须像这样调整您的 sprintf() 函数调用:

sprintf(result, "%02X", output[j]);

关于c - C 中的加密 hmac 结果比 C# 短,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14237622/

相关文章:

ruby - 无法使用 HMAC 在 Ruby 中生成正确的加密 key

bitcoin - SHA-256 有多少种组合?

c - 我的预期结果在 Bison 中不起作用

c - 如何在二维数组中找到匹配值的最快方法

c - 在多个线程之间共享套接字描述符

javascript - 是否有任何接受十六进制输入的 JavaScript 加密 HMAC 库?

ruby-on-rails - 如何在 Ruby 中使用 HMAC 模块创建 MD5 哈希?

c - libpq-fe,无法选择 INT8

hash - HMAC 执行失败

endianness - 小字节序数据和sha 256