7
votes

C # SHA-2 (512) base64 codé hachage

À la recherche d'un moyen de faire ce qui suit en C # dans une chaîne.

STROND SHA512HEX (Byte [] Données)

Calcule le SHA-512 Digest et retourne la valeur En tant que chaîne hexagonale.

paramètres: Données - données à digérer Retour: SHA-512 Digest comme une chaîne hexagonale xxx


0 commentaires

3 Réponses :


20
votes

serait System.Security.Cryptography.sha512 Soyez ce que vous besoin de xxx

exécuté dans LINQPAD produit:

EE-26-B0-DD-4A-F7-E7-49-AA-1A-8E-E3-C1-0A-E9-92-3F-61-89-80-77-2E-47-3F -88-19-A5-D4-94-0E-0D-B2-7A-C1-85-F8-A0-E1-D5-F8-4F-88-BC-88-7F-D6-7B-14-37 -32-C3-04-CC-5F-A9-AD-8E-6F-57-F5-00-28-A8-FF

Pour créer la méthode à partir de votre question: xxx


8 commentaires

n'a pas travaillé comme je l'avais espéré. La documentation indique que je dois convertir une chaîne en "SHA-2 (512) Base64 codé de hachage codé"


Oui, d'accord, je n'ai pas lu le titre tout à fait prudent, vous devriez également mentionner la partie "-2" de votre question. Je ne sais pas s'il y a une implémentation SHA-2 512 bits dans .NET mais est probablement.


Vous êtes sûr que SHA512 n'est pas SHA-2? D'autres sites Web indiquent qu'il est SHA-2 512 bits.


Avez-vous un étui à essai avec une entrée et une sortie prédéfinies?


Ce n'est pas une sortie hexagonale ... elle a été codée d'une manière ou d'une autre. Vous avez besoin de meilleure documentation.


La clé aléatoire, avez-vous une clé spécifique qui aiderait à produire cette sortie spécifique que vous avez ci-dessus?


Qu'est-ce qu'une "clé" ici? Est-ce un nombre? un ensemble de caractères? Un guid?


Comme pour tous les hachages salés, si vous n'avez pas le sel, le hachage ne vaut rien. Vous devez parler aux personnes qui vous ont donné l'exemple et demandez un exemple spécifique.



12
votes

obtenu cela pour travailler. Pris de Ici et modifié un peu.

    public static string CreateSHAHash(string Phrase)
    {
        SHA512Managed HashTool = new SHA512Managed();
        Byte[] PhraseAsByte = System.Text.Encoding.UTF8.GetBytes(string.Concat(Phrase));
        Byte[] EncryptedBytes = HashTool.ComputeHash(PhraseAsByte);
        HashTool.Clear();
        return Convert.ToBase64String(EncryptedBytes);
    }


1 commentaires

Cela ne renvoie pas une "chaîne hexagonale" mais une chaîne codée de base64.



0
votes

Meilleure gestion de la mémoire: xxx


1 commentaires

Cela ne renvoie pas une "chaîne hexagonale" mais une chaîne codée de base64.