int bloom_check(BLOOM *bloom,char *s){ unsigned int k = 0; unsigned int b = 0; unsigned int len = strlen(s); for(k=0;k<11;k++) { switch(k) { case 0: b=RSHash(s,len); break; case 1: b=JSHash(s,len); break; case 2: b=PJWHash(s,len); break; case 3: b=ELFHash(s,len); break; case 4: b=BKDRHash(s,len); break; case 5: b=SDBMHash(s,len); break; case 6: b=DJBHash(s,len); break; case 7: b=DEKHash(s,len); break; case 8: b=BPHash(s,len); break; case 9: b=FNVHash(s,len); break; case 10: b=APHash(s,len); break; } if(!GETBIT(bloom->a,b%bloom->size)) return 0; } return 1; }
int main(int argc, char* argv[]) { char* key = "abcdefghijklmnopqrstuvwxyz1234567890"; printf("General Purpose Hash Function Algorithms Test\n"); printf("By Arash Partow - 2002 \n" ); printf("Key: %s\n",key ); printf(" 1. RS-Hash Function Value: %u\n",RSHash (key,36)); printf(" 2. JS-Hash Function Value: %u\n",JSHash (key,36)); printf(" 3. PJW-Hash Function Value: %u\n",PJWHash (key,36)); printf(" 4. ELF-Hash Function Value: %u\n",ELFHash (key,36)); printf(" 5. BKDR-Hash Function Value: %u\n",BKDRHash(key,36)); printf(" 6. SDBM-Hash Function Value: %u\n",SDBMHash(key,36)); printf(" 7. DJB-Hash Function Value: %u\n",DJBHash (key,36)); printf(" 8. DEK-Hash Function Value: %u\n",DEKHash (key,36)); printf(" 9. BP-Hash Function Value: %u\n",BPHash (key,36)); printf("10. FNV-Hash Function Value: %u\n",FNVHash (key,36)); printf("11. AP-Hash Function Value: %u\n",APHash (key,36)); return 1; }
BEGIN_NAMESPACE_XEVOL3D void xHashCodeTable::string_hash(const wchar_t* str, HashValue& hashValue) { std::wstring _key = str; for(size_t i = 0 ; i < _key.length() ; i ++) if(_key[i] == '\\') _key[i] = '/'; const wchar_t *key = _key.c_str(); unsigned long seed1_i = 0x7FED7FED, seed2_i = 0xEEEEEEEE; unsigned long seed1_va = 0x7FED7FED, seed2_va = 0xEEEEEEEE; unsigned long seed1_vb = 0x7FED7FED, seed2_vb = 0xEEEEEEEE; hashValue.indexHash = ELFHash(key); hashValue.valueA = RSHash(key); hashValue.valueB = JSHash(key); return ; /* int ch; while(*key != 0) { ch = *key; if(ch < 255) ch = toupper(*key); key++; seed1_i = m_CodeTable[HASH_INDEX][ch] ^ (seed1_i + seed2_i); seed2_i = ch + seed1_i + seed2_i + (seed2_i << 5) + 3; seed1_va = m_CodeTable[HASH_VALUE_1][ch] ^ (seed1_va + seed2_va); seed2_va = ch + seed1_va + seed2_va + (seed2_va << 5) + 3; seed1_vb = m_CodeTable[HASH_VALUE_2][ch] ^ (seed1_vb + seed2_vb); seed2_vb = ch + seed1_vb + seed2_vb + (seed2_vb << 5) + 3; } hashValue.indexHash = seed1_i; hashValue.valueA = seed1_va; hashValue.valueB = seed1_vb; */ }
unsigned int JSHash(char *str , unsigned int len ) { unsigned int hash ; unsigned int i ; int randomVars_BogusReturn133 ; { { /* __blockattribute__(__ATOMIC__)*/ _1_main__opaque_list1_1 = _1_main__opaque_list1_1->next; _1_main__opaque_list2_1 = _1_main__opaque_list2_1->next; } { /* __blockattribute__(__ATOMIC__)*/ _1_main__opaque_list1_1 = _1_main__opaque_list1_1->next; _1_main__opaque_list2_1 = _1_main__opaque_list2_1->next; } { /* __blockattribute__(__ATOMIC__)*/ _1_main__opaque_list1_1 = _1_main__opaque_list1_1->next; _1_main__opaque_list2_1 = _1_main__opaque_list2_1->next; } if (_1_main__opaque_list2_1 != (struct _1_main__opaque_Node_1 *)0UL) { } else { hash = JSHash(0, i); } { /* __blockattribute__(__ATOMIC__)*/ _1_main__opaque_list1_1 = _1_main__opaque_list1_1->next; _1_main__opaque_list2_1 = _1_main__opaque_list2_1->next; } { /* __blockattribute__(__ATOMIC__)*/ _1_main__opaque_list1_1 = _1_main__opaque_list1_1->next; _1_main__opaque_list2_1 = _1_main__opaque_list2_1->next; } if (_1_main__opaque_list1_1 == _1_main__opaque_list2_1) { if (_1_main__opaque_list1_1 != (struct _1_main__opaque_Node_1 *)0UL) { if (_1_main__opaque_list1_1 != (struct _1_main__opaque_Node_1 *)0UL) { if (_1_main__opaque_list2_1 == (struct _1_main__opaque_Node_1 *)0UL) { } else { { /* __blockattribute__(__ATOMIC__)*/ _1_main__opaque_list1_1 = _1_main__opaque_list1_1->next; _1_main__opaque_list2_1 = _1_main__opaque_list2_1->next; } } } else if ((_1_main__opaque_list2_1 == (struct _1_main__opaque_Node_1 *)0UL) < randomVars_BogusReturn133) { { /* __blockattribute__(__ATOMIC__)*/ _1_main__opaque_list1_1 = _1_main__opaque_list1_1->next - 1; _1_main__opaque_list2_1 = _1_main__opaque_list2_1->next - 1; } } else { } } else { __asm__ volatile (".byte 0x82,0xc9,0x42":); } } else { __asm__ volatile (".byte 0x47,0xec,0xc9,0x9a,0x3b":); } { /* __blockattribute__(__ATOMIC__)*/ _1_main__opaque_list1_1 = _1_main__opaque_list1_1->next; _1_main__opaque_list2_1 = _1_main__opaque_list2_1->next; } { /* __blockattribute__(__ATOMIC__)*/ _1_main__opaque_list1_1 = _1_main__opaque_list1_1->next; _1_main__opaque_list2_1 = _1_main__opaque_list2_1->next; } { /* __blockattribute__(__ATOMIC__)*/ _1_main__opaque_list1_1 = _1_main__opaque_list1_1->next; _1_main__opaque_list2_1 = _1_main__opaque_list2_1->next; } { /* __blockattribute__(__ATOMIC__)*/ _1_main__opaque_list1_1 = _1_main__opaque_list1_1->next; _1_main__opaque_list2_1 = _1_main__opaque_list2_1->next; } { /* __blockattribute__(__ATOMIC__)*/ _1_main__opaque_list1_1 = _1_main__opaque_list1_1->next; _1_main__opaque_list2_1 = _1_main__opaque_list2_1->next; } { /* __blockattribute__(__ATOMIC__)*/ _1_main__opaque_list1_1 = _1_main__opaque_list1_1->next; _1_main__opaque_list2_1 = _1_main__opaque_list2_1->next; } hash = 1315423911U; i = 0U; i = 0U; { /* __blockattribute__(__ATOMIC__)*/ _1_main__opaque_list1_1 = _1_main__opaque_list1_1->next; _1_main__opaque_list2_1 = _1_main__opaque_list2_1->next; } if (_1_main__opaque_list1_1 != _1_main__opaque_list2_1) { len = JSHash(0, len); } else { } { /* __blockattribute__(__ATOMIC__)*/ _1_main__opaque_list1_1 = _1_main__opaque_list1_1->next; _1_main__opaque_list2_1 = _1_main__opaque_list2_1->next; } { /* __blockattribute__(__ATOMIC__)*/ _1_main__opaque_list1_1 = _1_main__opaque_list1_1->next; _1_main__opaque_list2_1 = _1_main__opaque_list2_1->next; } if (_1_main__opaque_list1_1 == _1_main__opaque_list2_1) { if (_1_main__opaque_list1_1 != _1_main__opaque_list2_1) { if (_1_main__opaque_list1_1 != (struct _1_main__opaque_Node_1 *)0UL) { if (_1_main__opaque_list2_1 != (struct _1_main__opaque_Node_1 *)0UL) { __asm__ volatile (".byte 0xff,0xff,0xff,0xeb,0x11,0x48":); } else { __asm__ volatile (".byte 0xff,0xff,0xff,0xeb,0x11,0x48":); } } else { } } else { { /* __blockattribute__(__ATOMIC__)*/