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

mspsb9vt  于 12个月前  发布在  其他
关注(0)|答案(3)|浏览(93)

简单地说,什么是内存有效的方法来计算大小可变的文件的sha256散列?我也愿意为了更快的计算而使用更多的内存。

pvabu6sv

pvabu6sv1#

我使用了Christophe Devine的一个简单的独立实现--虽然他的网站似乎不在网上,但Google代码搜索发现它是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测试向量,因此您也可以获得温暖和模糊的感觉/ ;- )

5f0d552i

5f0d552i3#

您可以尝试Con Kolivas在多线程多池FPGA和ASIC矿机中用于比特币或Dr Brian Gladman's code的实现。

相关问题