Difference between revisions of "FNV"

From SimsWiki
Jump to: navigation, search
 
(Formula)
Line 6: Line 6:
 
==Formula==
 
==Formula==
 
The hash is generated with an initial offset, which is multiplied by a prime number and XOR'ed by each byte of data.
 
The hash is generated with an initial offset, which is multiplied by a prime number and XOR'ed by each byte of data.
 +
 +
N.B. When hashing strings, the characters must first be converted to lower-case to comply with standards.
  
 
<pre>
 
<pre>
Line 19: Line 21:
 
}
 
}
 
</pre>
 
</pre>
 +
 
==Constants==
 
==Constants==
 
{| border="1"
 
{| border="1"

Revision as of 07:28, 17 June 2009

FNV hash function

Overview

The [Fowler-Noll-Vo hash function] is used in various Sims 3 resources, be it the 32 or 64 bit form, it is used in the generation of property ids, instance ids, bone ids, etc.

Formula

The hash is generated with an initial offset, which is multiplied by a prime number and XOR'ed by each byte of data.

N.B. When hashing strings, the characters must first be converted to lower-case to comply with standards.

FNV(byte[] data)
{
	hash = offset;
	foreach(byte b in data)
	{
		hash *= prime;
		hash ^= b;
	}
	return hash;
}

Constants

Bits Prime Offset
32 0x01000193 0x811C9DC5
64 0x00000100000001B3 0xCBF29CE484222325
Personal tools
Namespaces

Variants
Actions
Navigation
game select
Toolbox