2010-03-14 5 views
3

Y at-il une fonction de hachage qui renvoie une valeur hexadécimale à 16 chiffres (MD5 renvoie 32 chiffres) ou existe-t-il une bibliothèque (pour C++) dans laquelle je peux utiliser MD5 ou SHA-1 qui renvoie une valeur à 16 chiffresUne fonction de hachage à 16 chiffres

+0

Dans votre question précédente, vous avez mentionné que vous vouliez stocker la valeur de hachage dans 16 caractères plutôt que dans une valeur hexadécimale à 16 chiffres. 16 caractères est 128 bits, soit le même nombre de bits que les valeurs de hachage créées avec MD5, donc si vous utilisez réellement des caractères, vous devriez être en mesure d'ajuster toute la valeur de hachage MD5 dans vos fichiers. –

Répondre

7

Puisque vous êtes prêt à vivre avec le taux de collision beaucoup plus élevé, vous pouvez simplement tronquer le hachage MD5 des données.

+0

wouldnt cela donner un taux de collision plus élevé que d'avoir un hachage qui renvoie 16^16 chaînes uniques – Aly

+0

marginalement. Il y a environ 1 chance sur 30,612 d'une collision, ce qui n'est pas si impressionnant. –

1

est-il une bibliothèque (C++) dans laquelle je peux utiliser MD5 ou SHA-1, qui retourne une valeur de 16 chiffres

Lookup la bibliothèque (libre) ou RSA BSAFE OpenSSL crypto (payé).

+0

pourriez-vous fournir un exemple de la façon de tronquer le hachage de 32 chiffres à 16 en utilisant la bibliothèque de chiffrement – Aly

1

Si vous tronquez la taille d'une fonction de hachage cryptographique, vous la cassez, ce qui signifie que vous risquez d'endommager les propriétés qui assurent sa sécurité cryptographique. Si les propriétés cryptographiques ne sont pas importantes pour vous, alors vous n'avez pas du tout besoin d'un hachage cryptographique - vous feriez mieux d'utiliser un checksum ou un non-cryptographic hash.

Et quoi que vous fassiez, n'utilisez pas md5. Si vous avez besoin d'une fonction de hachage cryptographique, md5 n'est pas un bon choix car il existe des algorithmes qui créent des collisions dans un laps de temps raisonnable. Si vous n'avez pas besoin d'une fonction de hachage cryptographique, alors md5 est trop puissant.

Questions connexes