using System;
using System.Security.Cryptography;
using System.Text;
using System.Threading.Tasks;
public class Test
{
public static void Main()
{
Console.WriteLine(CalculateHash("admin", "admin"));
Console.WriteLine(CalculateHash("admin", "admin"));
}
private static string CalculateHash(string clearTextPassword, string salt)
{
// Convert the salted password to a byte array
var saltedHashBytes = Encoding.UTF8.GetBytes(clearTextPassword + salt);
// Use the hash algorithm to calculate the hash
HashAlgorithm algorithm = new SHA256Managed();
var hash = algorithm.ComputeHash(saltedHashBytes);
// Return the hash as a base64 encoded string to be compared to the stored password
return Convert.ToBase64String(hash);
}
}
dXNpbmcgU3lzdGVtOwp1c2luZyBTeXN0ZW0uU2VjdXJpdHkuQ3J5cHRvZ3JhcGh5Owp1c2luZyBTeXN0ZW0uVGV4dDsKdXNpbmcgU3lzdGVtLlRocmVhZGluZy5UYXNrczsKCnB1YmxpYyBjbGFzcyBUZXN0CnsKCXB1YmxpYyBzdGF0aWMgdm9pZCBNYWluKCkKCXsKCQlDb25zb2xlLldyaXRlTGluZShDYWxjdWxhdGVIYXNoKCJhZG1pbiIsICJhZG1pbiIpKTsKCQlDb25zb2xlLldyaXRlTGluZShDYWxjdWxhdGVIYXNoKCJhZG1pbiIsICJhZG1pbiIpKTsKCX0KCQoJcHJpdmF0ZSBzdGF0aWMgc3RyaW5nIENhbGN1bGF0ZUhhc2goc3RyaW5nIGNsZWFyVGV4dFBhc3N3b3JkLCBzdHJpbmcgc2FsdCkKCXsKCQkvLyBDb252ZXJ0IHRoZSBzYWx0ZWQgcGFzc3dvcmQgdG8gYSBieXRlIGFycmF5CgkJdmFyIHNhbHRlZEhhc2hCeXRlcyA9IEVuY29kaW5nLlVURjguR2V0Qnl0ZXMoY2xlYXJUZXh0UGFzc3dvcmQgKyBzYWx0KTsKCQkvLyBVc2UgdGhlIGhhc2ggYWxnb3JpdGhtIHRvIGNhbGN1bGF0ZSB0aGUgaGFzaAoJCUhhc2hBbGdvcml0aG0gYWxnb3JpdGhtID0gbmV3IFNIQTI1Nk1hbmFnZWQoKTsKCQl2YXIgaGFzaCA9IGFsZ29yaXRobS5Db21wdXRlSGFzaChzYWx0ZWRIYXNoQnl0ZXMpOwoJCS8vIFJldHVybiB0aGUgaGFzaCBhcyBhIGJhc2U2NCBlbmNvZGVkIHN0cmluZyB0byBiZSBjb21wYXJlZCB0byB0aGUgc3RvcmVkIHBhc3N3b3JkCgkJcmV0dXJuIENvbnZlcnQuVG9CYXNlNjRTdHJpbmcoaGFzaCk7Cgl9Cn0=