简单地说,什么是内存有效的方法来计算大小可变的文件的sha256散列?我也愿意为了更快的计算而使用更多的内存。
pvabu6sv1#
我使用了Christophe Devine的一个简单的独立实现--虽然他的网站似乎不在网上,但Google代码搜索发现它是in this place。使用这些sha256.c和sha256.h,他的main()函数的核心就是
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测试向量,因此您也可以获得温暖和模糊的感觉/ ;- )
gcxthw6b2#
或者使用OpenSSL libcrypto:https://wiki.openssl.org/index.php/EVP_Message_Digests
5f0d552i3#
您可以尝试Con Kolivas在多线程多池FPGA和ASIC矿机中用于比特币或Dr Brian Gladman's code的实现。
3条答案
按热度按时间pvabu6sv1#
我使用了Christophe Devine的一个简单的独立实现--虽然他的网站似乎不在网上,但Google代码搜索发现它是in this place。
使用这些
sha256.c
和sha256.h
,他的main()
函数的核心就是main()
函数的其余部分验证FIPS-180-2测试向量,因此您也可以获得温暖和模糊的感觉/ ;- )gcxthw6b2#
或者使用OpenSSL libcrypto:
https://wiki.openssl.org/index.php/EVP_Message_Digests
5f0d552i3#
您可以尝试Con Kolivas在多线程多池FPGA和ASIC矿机中用于比特币或Dr Brian Gladman's code的实现。