Comment puis-je SHA512 une chaîne de caractères en C#?
Je suis en train d'écrire une fonction pour prendre une corde et sha512 il comme?
public string SHA512(string input)
{
string hash;
~magic~
return hash;
}
Quelle devrait être la magie de l'être?
- 8*64 = 512 hash
Vous devez vous connecter pour publier un commentaire.
Votre code est correct, mais vous devez disposer de la SHA512Managed exemple:
512 bits de 64 octets.
Pour convertir une chaîne en un tableau d'octets, vous devez spécifier un encodage. UTF8 est correct si vous souhaitez créer un code de hachage:
using
.var data = Encoding.UTF8.GetByteCount(foo)
, utilisezvar data = Encoding.UTF8.GetBytes(foo)
.C'est à partir de l'un de mes projets:
S'il vous plaît, notez:
512/8 = 64
, donc 64 est en effet la bonne taille. Peut-être que vous voulez convertir en hexadécimal après le SHA512 algorithme.Voir aussi: Comment voulez-vous convertir le Tableau d'Octets en Hexadécimal de la Chaîne, et vice-versa?
Encoding.UTF8.GetByteCount("text")
Je ne suis pas sûr pourquoi vous attend 128.
8 bits dans un octet. 64 octets. 8 * 64 = 512 bits de hachage.
De la La Documentation MSDN:
La table de hachage de taille pour le SHA512Managed algorithme est de 512 bits.
Vous pouvez utiliser le Système.De sécurité.La cryptographie.SHA512 classe
MSDN sur SHA512
Voici un exemple, en droit de la MSDN
Au lieu de WinCrypt-API à l'aide du Système.De sécurité.La cryptographie, vous pouvez également utiliser BouncyCastle:
Si vous avez besoin de la HMAC-version (ajouter l'authentification, la valeur de hachage)
Vous pouvez essayer ces lignes: