Jay*_*Jay 2 c++ hash murmurhash
下午好!;)
我想做的事:
我有兴趣验证传输的文件完整性.
我是怎么找到它的:
我正在考虑使用哈希码,但有一个问题.文件可能非常大,所以我需要能够迭代生成哈希.我无法将整个文件加载到内存中.
到目前为止我看过的内容:
我调查murmur3和绞纱散列函数.我相信我理解如何使它与绞纱一起工作,但我构建的版本未通过所有已知的结果单元测试.我不确定如何"连锁"杂音以获得有效的结果.
有什么建议?
大多数哈希算法在固定大小的数据块上运行 - 您可以查找SHA1或MD5参考实现,它们使用"init/loop {update}/finalize"构造,允许您根据需要传递尽可能多的数据.每次更新.
看看例如Skein,他们在参考实现中使用相同的概念:
int Skein_256_Init (Skein_256_Ctxt_t *ctx, size_t hashBitLen);
int Skein_256_Update(Skein_256_Ctxt_t *ctx, const u08b_t *msg, size_t msgByteCnt);
int Skein_256_Final (Skein_256_Ctxt_t *ctx, u08b_t * hashVal);
Run Code Online (Sandbox Code Playgroud)
为什么您认为需要将整个数据作为一个块传递?你在看简化的包装函数吗?