Est-il un glibc fonction de hachage?
Je cherche à faire une coutume de la table de hachage de la mise en œuvre de C. Est-il un MD5/SHA1 fonction de hachage déjà dans la GNU library ou dois-je utiliser une bibliothèque externe pour cela?
Voici un peu ce que je recherche:
int hashValue;
hashValue = MD5_HASH(valToHash);
Même si il y était, vous auriez à passer un paramètre longueur trop.
OriginalL'auteur themaestro | 2010-10-14
Vous devez vous connecter pour publier un commentaire.
Vous pouvez prendre un coup d'oeil à Bob Jenkins enquête et de l'analyse de beaucoup de fonctions de hachage:
Ou il suffit de déposer son lookup3 routines (dont il est mis dans le domaine public) dans votre projet:
OriginalL'auteur Michael Burr
Pour une table de hachage, vous n'avez pas besoin de la robustesse cryptographique de, seule bonne la randomisation propriétés. Cassé fonctions de hachage cryptographiques (comme MD5) sont très bien pour cela, mais vous souhaiterez peut-être utiliser MD4, qui est à la fois plus rapide et plus simple, au point que vous pourriez simplement inclure une mise en œuvre directement dans votre code. Il n'est pas difficile de le réécrire à partir du cahier des charges (et puisque vous voulez seulement une fonction d'une table de hachage, il n'est pas vraiment un problème si vous vous trompez, à un certain point). Shameless plug: il y a un C optimisés mise en œuvre de MD4 dans sphlib.
OriginalL'auteur Thomas Pornin
Sauf si vous avez déjà une bonne raison pour l'utilisation de MD5, vous pouvez vouloir reconsidérer. Qu'est-ce qu'une "bonne" fonction de hachage dans une table de hachage est assez dépendante de ce que vous essayez d'accomplir. Vous pouvez lire les commentaires en Python
dictobject.c
pour voir les sortes de compromis, d'autres ont fait.OriginalL'auteur Hank Gay
Il y a un peu de confiance, simple versions disponibles, je suis un peu dans les sources de la digest pour R.
Voici ce que j'ai écrit dans le fichier de DESCRIPTION:
Je pense que certains de Christophe de code n'est plus à cr0.net mais la recherche doit vous conduire à plusieurs autres projets à les intégrer. Son fichier d'en-têtes ont été assez clair:
et son code correspond à la référence de sortie.
OriginalL'auteur Dirk Eddelbuettel
De Glibc
crypt()
utilise un MD5 basé algorhytm si le sel commence par $1$. Mais puisque vous parlez de ce que vous allez faire une table de hachage de la mise en œuvre, peut-être Jenkins hachage serait plus approprié.OriginalL'auteur ninjalj
La bibliothèque OpenSSL a toutes les crypto routines que vous pourriez jamais vouloir, y compris des empreintes cryptographiques.
OriginalL'auteur Chris
gcrypt et openssl peut faire MD5, SHA et d'autres hachages voici un exemple avec une libgcrypt:
`
OriginalL'auteur karl
Murmur3 est un rapide noncryptographic algorithme que vous pouvez utiliser.
Une bonne vitesse de comparaison de murmurer contre d'autres algorithmes peuvent être trouvés dans ce fil https://softwareengineering.stackexchange.com/questions/49550/which-hashing-algorithm-is-best-for-uniqueness-and-speed
Une implémentation possible: https://github.com/PeterScott/murmur3
Exemple:
OriginalL'auteur UnixShadow