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

问题描述 投票:0回答:3

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

c hash
3个回答
6
投票

我使用了 Christophe Devine 的一个简单的独立实现——虽然他的网站似乎不在网络上,但 Google 代码搜索找到了它 在这个地方.

利用这些

sha256.c
sha256.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 测试向量,因此您也会得到那种温暖而模糊的感觉/;-)


2
投票

0
投票

您可以尝试Con Kolivas 的实现用于比特币的多线程多池 FPGA 和 ASIC 矿工或配置良好的Brian Gladman 博士的代码

© www.soinside.com 2019 - 2024. All rights reserved.