rsk*_*k82 2 c++ winapi checksum md5 sha
我的意思是像在php中类似的东西sha1_file
.
我找到了非常好的和紧凑的脚本,不需要像boost这样的外部库:http://code.google.com/p/smallsha1/source/browse/trunk/sha1.cpp
但是当文件大小为10GB时,有没有办法传递给它一个文件流?
确切的代码不能采取流,不.
看看循环while (currentBlock <= endOfFullBlocks)
.它通过实际的散列代码一次运行64个字节.因此,为了修改此代码以获取流,您需要它从流中读取这64个字节而不是从中获取sarray
(指向与输入相同的数据src
).
每次读取64字节不是读取10GB数据的有效方法,因此实际上您可能想要引入第二个循环:一个用于从文件中读取较大的块,另一个用于通过散列放置64个字节块.
您当然还需要修改代码来处理输入数据的"剩余"部分,该部分不是64的倍数.
或者,使用"init","update","finish"/"digest"函数找到不同的SHA1实现,然后使用它.这种接口的想法是你可以多次调用"更新",传入任何大小的数据块,便于读取你的流.
归档时间: |
|
查看次数: |
1623 次 |
最近记录: |