Die Umsetzung wie die
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();
}
bearbeiten könnte:Linq Implementierung ist prägnante, aber wahrscheinlich weniger lesbar:
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")));
}
}
Edit 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();
}
http://msdn.microsoft.com/en-us/library/system.security.cryptography.sha256.aspx. -1. –
Hashes arbeiten an Bytes, nicht an Strings. Sie müssen also zuerst eine Codierung auswählen, die die Zeichenfolge in Bytes umwandelt. Ich empfehle UTF-8 dafür. – CodesInChaos
Etwas sagt mir, dass Leute, die diesen Beitrag lesen, auch überprüfen sollten: https://stackoverflow.com/questions/4948322/fundamental-difference-between-hashing-and-encryption-algorithms – Ziezi