Pour ceux qui souhaitent un formatage de texte "standard" du dièse, vous pouvez utiliser quelque chose comme ce qui suit :
static string Hash(string input)
{
using (SHA1Managed sha1 = new SHA1Managed())
{
var hash = sha1.ComputeHash(Encoding.UTF8.GetBytes(input));
var sb = new StringBuilder(hash.Length * 2);
foreach (byte b in hash)
{
// can be "x2" if you want lowercase
sb.Append(b.ToString("X2"));
}
return sb.ToString();
}
}
Cela produira un hachage comme 0C2E99D0949684278C30B9369B82638E1CEAD415
.
Ou pour un code version golfique :
static string Hash(string input)
{
var hash = new SHA1Managed().ComputeHash(Encoding.UTF8.GetBytes(input));
return string.Concat(hash.Select(b => b.ToString("x2")));
}
Pour les versions .Net 5 et supérieures, la fonction intégrée Convert.ToHexString
donne une bonne solution sans compromis :
static string Hash(string input)
{
using var sha1 = SHA1.Create();
return Convert.ToHexString(sha1.ComputeHash(Encoding.UTF8.GetBytes(input)));
}