stackoverflow sha256cryptoserviceprovider password example encrypt ejemplo desencriptar c# string hash sha256

c# - sha256cryptoserviceprovider - Obtener la cadena SHA-256 de una cadena



sha256 c# stackoverflow (2)

Estaba buscando una solución en línea y pude compilar lo siguiente a partir de la respuesta de Dmitry:

public static String sha256_hash(string value) { return (System.Security.Cryptography.SHA256.Create() .ComputeHash(Encoding.UTF8.GetBytes(value)) .Select(item => item.ToString("x2"))); }

Tengo algunas string y quiero hacer un hash con la función de hash SHA-256 usando C #. Quiero algo como esto:

string hashString = sha256_hash("samplestring");

¿Hay algo incorporado en el marco para hacer esto?


La implementación podría ser así.

public static String sha256_hash(String value) { StringBuilder Sb = new StringBuilder(); using (SHA256 hash = SHA256Managed.Create()) { Encoding enc = Encoding.UTF8; Byte[] result = hash.ComputeHash(enc.GetBytes(value)); foreach (Byte b in result) Sb.Append(b.ToString("x2")); } return Sb.ToString(); }

Edición: la implementación de Linq es más concisa , pero, probablemente, menos legible :

public static String sha256_hash(String value) { using (SHA256 hash = SHA256Managed.Create()) { return String.Concat(hash .ComputeHash(Encoding.UTF8.GetBytes(value)) .Select(item => item.ToString("x2"))); } }

Edición 2: .NET Core

public static String sha256_hash(string value) { StringBuilder Sb = new StringBuilder(); using (var hash = SHA256.Create()) { Encoding enc = Encoding.UTF8; Byte[] result = hash.ComputeHash(enc.GetBytes(value)); foreach (Byte b in result) Sb.Append(b.ToString("x2")); } return Sb.ToString(); }