如何使用openssl / sha.h对256个文本文件进行哈希哈希处理

时间:2019-01-18 19:15:36

标签: c++ io sha256

我正在尝试对系统上的文件进行哈希处理,而C ++代码中的哈希值是正确的长度,但这与Private Sub Worksheet_Calculate() If Worksheets("NameHere").Range("A1") Then MacroRuns Worksheets("NameHere").Range("A1") = False End Sub

时得到的哈希值不同

我已经尝试实现了到目前为止我在stackoverflow上看到的一切的混合体,最终使一些东西几乎可以正常工作。

$ echo -n file.txt | sha256sum

请原谅,我正在尝试通过少量文档学习如何使用此功能,而大多数人只是在尝试对短字符串进行哈希处理。

void sha256_file(const std::string &fn) { FILE *file; unsigned char buf[8192]; unsigned char output[SHA256_DIGEST_LENGTH]; size_t len; SHA256_CTX sha256; file = fopen(fn.c_str(), "rb"); if(file == NULL) // do whatever else { SHA256_Init(&sha256); while((len = fread(buf, 1, sizeof buf, file)) != 0) SHA256_Update(&sha256, buf, len); fclose(file); SHA256_Final(output, &sha256); for(int i = 0; i < SHA256_DIGEST_LENGTH; i++) printf("%02x", output[1]); printf("\n"); } 是我用来检查哈希的内容,但是输出是不同的。我会复制粘贴,但是它在另一个系统上。

1 个答案:

答案 0 :(得分:1)

很容易,您在打印循环中执行的是setup-config.php而不是[1]

[i]

应该是

      for(int i = 0; i < SHA256_DIGEST_LENGTH; i++)
            printf("%02x", output[1]);

傻拉丁字母!