Comment mettre en œuvre md5 ou sha1 de hachage en C
Je veux écrire un programme de hachage des données et de préférence, j'aimerais qu'il à utiliser sha1 ou MD5 aucun de ceux-ci. Je ne sais pas la logique principale derrière elle. Je voulais aussi savoir quelles façons est-ce que je peux le faire en C.
- Qu'avez-vous essayé?
- "Chiffrer" à l'aide de MD5 ou SHA1? Ceux qui sont à la fois les tables de hachage. Voulez-vous être en mesure d'inverser le processus?
- MD5 et SHA1 sont pas des algorithmes de chiffrement, ils sont les algorithmes de hachage. Un simple wikipedia de recherche vous aurait donné cette information. Comme pour les bibliothèques C - essayez-vous de faire cela comme un exercice ou êtes-vous ouvert à l'aide d'une bibliothèque existante?
- Juste Google et essayer de mettre en œuvre l'algorithme. Si vous avez un problème lors de la mise en œuvre, nous allons vous aider.
- comme @mattjgalloway dit que ceux sont les hachages pas de chiffrement. Vous devriez regarder pour des AES,DSA,RSA etc. le cryptage.
- je veux juste faire de hachage en C et vous pouvez considérer cela que je fais comme un exercice, de mes connaissances et que les deux sont similaires, il n'a pas d'importance pour moi ce que j'ai choisi. JE NE VEUX PAS UTILISER TOUTES LES FONCTIONS DE LA BIBLIOTHÈQUE OU DE LA SORTE. JE VEUX TOUT FAIRE PAR MOI-MÊME
- Double Possible de Comment puis-je générer un hachage MD5?
Vous devez vous connecter pour publier un commentaire.
Si vous voulez apprendre, je pense que le NIST spécification de la norme FIPS 180-4 est un excellent document à partir de laquelle vous pouvez mettre en œuvre toutes les SHA de la série, y compris SHA-1.
Pour MD5, RFC 1321 contient une implémentation C en annexe. Lisez également le errata pour quelques corrections de bug.
Il y a beaucoup de bibliothèques existantes qui mettent en œuvre des algorithmes de chiffrement, comme les deux fonctions de hachage que vous mentionnez (notez que j'ai dit que les fonctions de hachage - ie. ils ne chiffre pas les données).
Par exemple, openssl a une mise en œuvre à la fois MD5 et SHA-1 (et beaucoup plus).