Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/329.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java hash2的MessageDigest实现_Java_Hash_Digest_Message Digest_Murmurhash - Fatal编程技术网

Java hash2的MessageDigest实现

Java hash2的MessageDigest实现,java,hash,digest,message-digest,murmurhash,Java,Hash,Digest,Message Digest,Murmurhash,我想在Java应用程序中使用Hash2算法(32位)进行下载验证。GitHub上存在各种实现,但我想使用一个实现,因为我对如何以这种方式“翻译”哈希算法感兴趣,它将提供在下载时使用一个“动态”计算哈希的可能性 我的问题:这是直接的/容易做到的吗?不可能吗?你能告诉我如何做的更多信息吗?AFAIK如果你想用java的方式使用MessageDigest,你还应该创建你自己的SecurityProvider,使用MessageDigest,我的问题是,算法从一开始就知道要散列的所有数据。如果查看Mes

我想在Java应用程序中使用Hash2算法(32位)进行下载验证。GitHub上存在各种实现,但我想使用一个实现,因为我对如何以这种方式“翻译”哈希算法感兴趣,它将提供在下载时使用一个“动态”计算哈希的可能性


我的问题:这是直接的/容易做到的吗?不可能吗?你能告诉我如何做的更多信息吗?

AFAIK如果你想用java的方式使用MessageDigest,你还应该创建你自己的SecurityProvider,使用
MessageDigest,我的问题是,算法从一开始就知道要散列的所有数据。如果查看MessageDigest的抽象方法,您会发现MessageDigest具有可变状态,可以通过
update
方法不断更新实例,并最终要求通过
digest
方法生成哈希。TL;DR:我想以“流”的方式实现它。若你们看一下实现,在主循环中,你们可以看到数据按4块处理,并改变内部状态变量h。最后一个字节的处理方式不同,所以您应该为此维护内部缓冲区。在
update
散列所有预期的%4字节中,提醒存储在内部缓冲区中。在
摘要中
处理好此缓冲区并执行最后的操作(^和>>)。谢谢,如果成功链接到当前实现,我将尽最大努力添加答案:(
无效引擎更新(字节[]输入,整数偏移,整数长度)
仍需要优化)