Je cherche à hacher une chaîne mais j'ai besoin de la sortie pour être un entier pour que je ne puisse pas faire de MD5. Les gens ont-ils ici des hachages numériques préférés qu'ils voudront peut-être vous éclairer. J'utilise php. p>
merci! p>
4 Réponses :
Peut-être que c'est assez bon pour vous:
echo hash('adler32', $string);
La sortie de MD5 est un nombre, comme avec à peu près tous les hachages imaginables. C'est juste un nombre généralement exprimé en hexagone. Utilisez n'importe quel algorithme de hachage qui vous permet de vous mettre à votre disposition, de couper autant de bits que vous voulez hors de la fin et de traiter ces bits comme un nombre. Tout bonne em> hachage aura ses derniers (ou premier ou moyen) n em> bits tout aussi répartis comme une valeur totale. P>
Oui, mais, tronquant ou plier le résultat du hachage le fera de perdre de la qualité à la fois en termes de sécurité et de distribution.
Si le hachage est bon (si c'est une approximation appropriée d'un hachage idéal), alors lorsque vous le tronquez, il restera également bien réparti et ne perdra aucune sécurité, sauf ce qui est dû à la réduction du clavier.
Je pense qu'il y a de bonnes questions de hachage et de PHP déjà sur Stackoverflow.
Essayez un hachage code> + ici. p>
php code> recherche
une liste courte, p>
Vous pouvez utiliser base_convert pour changer hexadécimal en nombre décimal et inversement. Si vous souhaitez convertir des entiers (comme une chaîne) sur Hex, vous êtes limité à 32 bits ou moins, je crois (php_int_max).
adler32 c1015d04 3238092036 c1015d04 yes crc32 accf8b33 2899282739 accf8b33 yes crc32b d87f7e0c 3632233996 d87f7e0c yes
Voulez-vous dire un "bon" hachage comme en bonne sécurité ou comme dans une bonne répartition clé? Le premier vous donnera généralement le deuxième, mais à un coût comparativement élevé.
La page suivante a plusieurs implémentations de fonctions de hachage à usage général qui sont efficaces et exposent des collisions minimales: /programmation/hashfunctions/index.html