} // 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
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()); }
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); }
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); }