Exemplo n.º 1
0
        } // End Function SCrypt

        // https://github.com/bcgit/bc-csharp/tree/096c4894f62b7f4178ab869ec342e9351bd198dd/crypto/src/crypto/digests
        public static byte[] Sha3(string text)
        {
            byte[] encData = System.Text.Encoding.UTF8.GetBytes(text);
            Org.BouncyCastle.Crypto.Digests.Sha3Digest myHash = new Org.BouncyCastle.Crypto.Digests.Sha3Digest();

            myHash.BlockUpdate(encData, 0, encData.Length);
            byte[] compArr = new byte[myHash.GetDigestSize()];
            myHash.DoFinal(compArr, 0);

            return(compArr);
        } // End Function Sha3
Exemplo n.º 2
0
        internal static string GetSha3Hash(string input)
        {
            var hashAlgorithm = new Org.BouncyCastle.Crypto.Digests.Sha3Digest(512);
            var bytes         = Encoding.ASCII.GetBytes(input);

            hashAlgorithm.BlockUpdate(bytes, 0, bytes.Length);

            var result = new byte[64]; // 512 / 8 = 64

            hashAlgorithm.DoFinal(result, 0);

            var hashString = BitConverter.ToString(result);

            return(hashString.Replace("-", "").ToUpperInvariant());
        }
Exemplo n.º 3
0
        public static string SHA3_512(string data)
        {
            var hashAlgorithm = new Org.BouncyCastle.Crypto.Digests.Sha3Digest(512);

            // Choose correct encoding based on your usecase
            byte[] input = Encoding.ASCII.GetBytes(data);

            hashAlgorithm.BlockUpdate(input, 0, input.Length);

            byte[] result = new byte[64]; // 512 / 8 = 64
            hashAlgorithm.DoFinal(result, 0);

            string hashString = BitConverter.ToString(result);

            hashString = hashString.Replace("-", "").ToLowerInvariant();

            return(hashString);
        }
Exemplo n.º 4
0
        private string GetUserHash(string username)
        {
            // try cache
            if (_userHashCache.ContainsKey(username))
            {
                return(_userHashCache[username]);
            }

            // create new
            var hashAlgorithm = new Org.BouncyCastle.Crypto.Digests.Sha3Digest(512);
            var input         = Encoding.ASCII.GetBytes(username);

            hashAlgorithm.BlockUpdate(input, 0, input.Length);
            var result = new byte[64];

            hashAlgorithm.DoFinal(result, 0);
            var hashString = BitConverter.ToString(result);

            // add to cache and return
            _userHashCache[username] = hashString;
            return(hashString);
        }