コード例 #1
0
        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);
        }
コード例 #2
0
 public JenkHash(string text, JenkHashInputEncoding encoding)
 {
     Encoding = encoding;
     Text     = text;
     HashUint = GenHash(text, encoding);
     HashInt  = (int)HashUint;
     HashHex  = "0x" + HashUint.ToString("X");
 }
コード例 #3
0
        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();
        }