feat: hashing utils

This commit is contained in:
goaaats 2022-01-29 04:46:11 +01:00
parent 597b7bb000
commit 5d90973386
No known key found for this signature in database
GPG key ID: 49E2AA8C6A76498B

34
Dalamud/Utility/Hash.cs Normal file
View file

@ -0,0 +1,34 @@
using System;
namespace Dalamud.Utility
{
/// <summary>
/// Utility functions for hashing.
/// </summary>
public static class Hash
{
/// <summary>
/// Get the SHA-256 hash of a string.
/// </summary>
/// <param name="text">The string to hash.</param>
/// <returns>The computed hash.</returns>
internal static string GetStringSha256Hash(string text)
{
return string.IsNullOrEmpty(text) ? string.Empty : GetSha256Hash(System.Text.Encoding.UTF8.GetBytes(text));
}
/// <summary>
/// Get the SHA-256 hash of a byte array.
/// </summary>
/// <param name="buffer">The byte array to hash.</param>
/// <returns>The computed hash.</returns>
internal static string GetSha256Hash(byte[] buffer)
{
using var sha = new System.Security.Cryptography.SHA256Managed();
var hash = sha.ComputeHash(buffer);
return ByteArrayToString(hash);
}
private static string ByteArrayToString(byte[] ba) => BitConverter.ToString(ba).Replace("-", string.Empty);
}
}