using System.Data.HashFunction.Jenkins;
public static void SimHashOfString(string s)
char[] delimiters= { ' ', ',', '.' };
var words = s.ToLower().Split(delimiters);
string[] hashedWords = new string[words.Length];
var jenkins = JenkinsOneAtATimeFactory.Instance.Create();
for (int i = 0; i < words.Length; i++)
byte[] hash = jenkins.ComputeHash(System.Text.Encoding.UTF8.GetBytes(words[i])).Hash;
for (int j = 0; j < 4; j++)
hashedWords[i] += Convert.ToString(hash[j], 2).PadLeft(8, '0');
for (int j = 0; j < 32; j++)
for (int i = 0; i < hashedWords.Length; i++)
if (hashedWords[i][j].Equals('0'))
int numOfBytes = result.Length / 8;
byte[] bytes = new byte[numOfBytes];
for(int i = 0; i < numOfBytes; i++)
bytes[i] = Convert.ToByte(result.Substring(8 * i, 8), 2);
Console.WriteLine(BitConverter.ToUInt32(bytes,0));
Console.WriteLine("____");
public static void Main()
SimHashOfString("Ana are mere");
SimHashOfString("meri are Ana");
SimHashOfString("Ninel nu stie nimic");
SimHashOfString("nimic nu stie");
SimHashOfString("O propozitie legata");