c - 如何使用 ANSI C 获取文件的 sha256 哈希值

标签 c hash

简单地说就是主题所述,计算大小可变文件的 sha256 哈希的内存有效方法是什么?我也愿意妥协使用更多内存来加快计算速度。

最佳答案

我使用了 Christophe Devine 的一个简单的独立实现——虽然他的网站似乎不在网上,但谷歌代码搜索找到了它 in this place .

使用这些sha256.csha256.h,他的main()函数的核心就是简单的

if( ! ( f = fopen( argv[1], "rb" ) ) )
        {
            perror( "fopen" );
            return( 1 );
        }

        sha256_starts( &ctx );

        while( ( i = fread( buf, 1, sizeof( buf ), f ) ) > 0 )
        {
            sha256_update( &ctx, buf, i );
        }

        sha256_finish( &ctx, sha256sum );

        for( j = 0; j < 32; j++ )
        {
            printf( "%02x", sha256sum[j] );
        }

        printf( "  %s\n", argv[1] );
}

main() 函数的其余部分验证了 FIPS-180-2 测试 vector ,所以您也会有那种温暖和模糊的感觉/;-)

关于c - 如何使用 ANSI C 获取文件的 sha256 哈希值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1964567/

相关文章:

javascript - 引用错误 : CryptoJs is not defined

c - MPI中3D过程分解中交换2D光晕的子数组数据类型的数量

c++ - 填充传递给函数的二维数组

c++ - 将 C 文件添加到 Visual Studio

java - 为什么 Guava 布隆过滤器的性能这么差?

python - 使用其标题散列值查找特定窗口

c - recvfrom 用零填充缓冲区

c++ - 外部如何工作?

java - hash()%n 和 n%hash() 有什么区别

python - 创建 |N| x |M|来自哈希表的矩阵