Algorithme de hachage avec sortie alphanumérique de 20 caractères max
J'ai besoin d'un algorithme de hachage qui génère une chaîne alphanumérique qui est de max 20 caractères de long. Pour "alphanumérique", je veux dire [a-zA-Z0-9]
.
Entrées sont UUIDs dans la forme canonique (exemple 550e8400-e29b-41d4-a716-446655440000
)
Dans la variante est-il un moyen de convertir un hachage SHA1 ou MD5 d'une chaîne de caractères avec ces limitations?
Grâce.
MODIFIER
N'a pas besoin d'être cryptographique sécurisé. Les Collisions de rendre les données inexactes, mais si elles se produisent sporadiquement je peux vivre avec ça.
EDIT 2
Je ne sais pas si tronquer MD5 ou SHA1 rendrait les collisions peuvent se produire trop souvent. Maintenant je me demande si c'est mieux de le tronquer à 20 caractères d'une valeur MD5 ou SHA1 valeur.
Tu ne peux pas imprimer le hachage SHA1 ou MD5 de la chaîne en hexadécimal (ou base64) et tronquée à 20 caractères, si nécessaire?
Quel est votre objectif? Est-il tel que de simplement prendre une sous-chaîne de 20 caractères, d'un hash SHA1 ne fonctionnerait pas?
Je vais essayer de tronquer le SHA1 (MD5 ou, pas encore décidé) à 20 caractères. Je peux mesurer les collisions, donc je peux publier les résultats.
OriginalL'auteur Giacomo | 2011-01-28
Vous devez vous connecter pour publier un commentaire.
Juste découper les personnages que vous n'avez pas besoin de la valeur de hachage du GUID. Avec une bonne fonction de hachage, l'imprévisibilité de toute partie de la valeur de hachage est proportionnelle à la part de la taille. Si vous le souhaitez, vous pouvez encoder la base de 32 au lieu de la norme de base hexagonale 16. Gardez à l'esprit que cela ne va pas améliorer de manière significative l'entropie par personnage (seulement 25%).
Pour les non-cryptographique utilise, il n'a pas d'importance si vous tronquez MD5, SHA1 ou SHA2. Ni a des lacunes criantes dans l'entropie.
OriginalL'auteur phihag