public static uint GenHash(string text, JenkHashInputEncoding encoding = JenkHashInputEncoding.ASCII) { uint h = 0; byte[] chars; switch (encoding) { default: case JenkHashInputEncoding.UTF8: chars = UTF8Encoding.UTF8.GetBytes(text); break; case JenkHashInputEncoding.ASCII: chars = ASCIIEncoding.ASCII.GetBytes(text); break; } for (uint i = 0; i < chars.Length; i++) { h += chars[i]; h += (h << 10); h ^= (h >> 6); } h += (h << 3); h ^= (h >> 11); h += (h << 15); return(h); }
public JenkHash(string text, JenkHashInputEncoding encoding) { Encoding = encoding; Text = text; HashUint = GenHash(text, encoding); HashInt = (int)HashUint; HashHex = "0x" + HashUint.ToString("X"); }
private void GenerateHash() { JenkHashInputEncoding encoding = JenkHashInputEncoding.UTF8; if (ASCIIRadioButton.Checked) { encoding = JenkHashInputEncoding.ASCII; } JenkHash h = new JenkHash(InputTextBox.Text, encoding); HashHexTextBox.Text = h.HashHex; HashSignedTextBox.Text = h.HashInt.ToString(); HashUnsignedTextBox.Text = h.HashUint.ToString(); }