大佬教程收集整理的这篇文章主要介绍了vb.net – MurmurHash3测试向量,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
它运行…但有人可以提供一些已知的测试向量来验证正确性吗?
>已知的字符串文字
>种子价值
> MurmurHash3的结果
提前致谢.
编辑:我将实现限制为只有32位MurmurHash3,但如果你也可以提供64位实现的向量,也会很好.
这仅适用于Murmur3_x86_32
| Input | Seed | Expected | |--------------|------------|------------| | (no bytes) | 0 | 0 | with zero data and zero seed,everything becomes zero | (no bytes) | 1 | 0x514E28B7 | ignores nearly all the math | (no bytes) | 0xffffffff | 0x81F16F39 | make sure your seed uses unsigned 32-bit math | FF FF FF FF | 0 | 0x76293B50 | make sure 4-byte chunks use unsigned math | 21 43 65 87 | 0 | 0xF55B516B | Endian order. UInt32 should end up as 0x87654321 | 21 43 65 87 | 0x5082EDEE | 0x2362F9DE | Special seed value eliminates initial key with xor | 21 43 65 | 0 | 0x7E4A8634 | Only three bytes. Should end up as 0x654321 | 21 43 | 0 | 0xA0F7B07A | Only two bytes. Should end up as 0x4321 | 21 | 0 | 0x72661CF4 | Only one byte. Should end up as 0x21 | 00 00 00 00 | 0 | 0x2362F9DE | Make sure compiler doesn't see zero and convert to null | 00 00 00 | 0 | 0x85F0B427 | | 00 00 | 0 | 0x30F4C306 | | 00 | 0 | 0x514E28B7 |
对于那些将移植到没有实际数组的语言的人,我也有一些基于字符串的测试.对于这些测试:
>假设所有字符串都是UTF-8编码的
>并且不包含任何null终止符
我会以代码形式留下这些:
TestString("",0); //empty String with zero seed should give zero TestString("",1,0x514E28B7); TestString("",0xffffffff,0x81F16F39); //make sure seed value is handled unsigned TestString("\0\0\0\0",0x2362F9DE); //make sure we handle embedded nulls TestString("aaaa",0x9747b28c,0x5A97808A); //one full chunk TestString("aaa",0x283E0130); //three characters TestString("aa",0x5D211726); //two characters TestString("a",0x7FA09EA6); //one character //Endian order within the chunks TestString("abcd",0xF0478627); //one full chunk TestString("abc",0xC84A62DD); TestString("ab",0x74875592); TestString("a",0x7FA09EA6); TestString("Hello,world!",0x24884CBA); //Make sure you handle UTF-8 high characters. A bcrypt implementation messed this up TestString("ππππππππ",0xD58063C1); //U+03C0: Greek small Letter Pi //String of 256 characters. //Make sure you don't store String lengths in a char,and overflow at 255 bytes (as OpenBSD's canonical BCrypt implementation did) TestString(StringOfChar("a",256),0x37405BDC);
我将发布11个转换为Murmur3的SHA-2测试向量中的两个.
TestString("abc",0xB3DD93FA); TestString("abcdbcdecdefdefgefghfghighijhijkijkljklmklmnlmnomnopnopq",0xEE925B90);
最后,最重要的一个:
>关键:“快速的棕色狐狸跳过懒狗”
>种子:0x9747b28c
>哈希:0x2FA826CD
如果其他人可以从他们的实现中确认任何/所有这些向量.
而且,这些测试向量来自于从KeySetTest.cpp - VerificationTest(...)
开始通过SMHasher 256迭代循环测试的实现.
这些测试来自我在Delphi中的实现.我还在Lua中创建了一个实现(在支持数组方面并不大).
以上是大佬教程为你收集整理的vb.net – MurmurHash3测试向量全部内容,希望文章能够帮你解决vb.net – MurmurHash3测试向量所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。