vb.net – MurmurHash3测试向量
我正在尝试将
C# implementation of MurmurHash3移植到VB.Net.
它运行…但有人可以提供一些已知的测试向量来验证正确性吗? >已知的字符串文字 提前致谢. 编辑:我将实现限制为只有32位MurmurHash3,但如果你也可以提供64位实现的向量,也会很好.
我终于开始创建一个MurMur3实现了,我设法翻译了SMHasher测试代码.我的实现给出了与SMHasher测试相同的结果.这意味着我终于可以提供一些有用的,并且假定为正确的测试向量.
这仅适用于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编码的 我会以代码形式留下这些: TestString("",0); //empty string with zero seed should give zero TestString("",1,0x514E28B7); TestString("",0xffffffff,0x81F16F39); //make sure seed value is handled unsigned TestString(" ",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); 最后,最重要的一个: >关键:“快速的棕色狐狸跳过懒狗” 如果其他人可以从他们的实现中确认任何/所有这些向量. 而且,这些测试向量来自于从 这些测试来自我在Delphi中的实现.我还在Lua中创建了一个实现(在支持数组方面并不大).
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |