Recherche d'une chaîne à fonction de hachage en nombre entier avec des valeurs comprises dans la plage de mysql bigint unsigned
type de données (0 <= n <= 18446744073709551615
). La conversion de md5/sha1 en entier avec la base de 16 ne correspond pas à cette exigence.Fonction de hachage Integer 128 bits
1
A
Répondre
0
Java utilise un rolling hash qui devrait fonctionner pour vous
De java.lang.String
:
public int hashCode() {
int h = hash;
if (h == 0 && count > 0) {
int off = offset;
char val[] = value;
int len = count;
for (int i = 0; i < len; i++) {
h = 31*h + val[off++];
}
hash = h;
}
return h;
}
L'idée est de calculer le hachage comme:
s[0]*31^(n-1) + s[1]*31^(n-2) + ... + s[n-1]
Pour faire face à débordement, vous pouvez ajouter une étape où le hachage est vérifié par rapport à 18446744073709551615
et s'il est plus grand, prendre le mod
du hachage et 18446744073709551615
.
Questions connexes
- 1. XOR 128 bit bits
- 2. Compteur SSE 128 bits?
- 3. Générer 32 chiffres, 128 bits nombre par fonction digest (MD5, 128 bits) dans XSLT
- 4. 128 bits MVBITS dans gfortran
- 5. erreur de type 128 bits
- 6. données longues de 128 bits
- 7. Fonction de hachage de sortie 96 bits
- 8. tomcat Cryptage JNDI 128 bits
- 9. Entier 128 bits sur cuda?
- 10. Opérations variables sur 128 bits
- 11. DCPcrypt: support AES 128 bits?
- 12. C 128 bits type double
- 13. SymmetricAlgorithm GenerateKey avec 128 bits
- 14. Hashvalue de l'algorithme SHA512 est 128 bits de long?
- 15. ColdFusion 128 bits unsigned int à IPv6
- 16. Codeur/hachage 128 bits réversible pour réduire la taille de la base de données
- 17. Division 128 bits intrinsèque dans Visual C++
- 18. ARM NEON: comparaison de 128 bits
- 19. Générer un nombre hexadécimal de 128 bits
- 20. Génération de clés 128 bits avec keytool
- 21. Exécution de maths 128 bits dans nodejs
- 22. Chaîne personnalisée à chaîne de 128 bits
- 23. Codage RC4 128 bits en C#
- 24. comment travailler avec 128 bits C variable et xmm 128 bits asm?
- 25. Pour stocker 128 bits de hachage: deux bigints ou binaire (16)?
- 26. Bibliothèque d'entiers 128 bits la plus rapide
- 27. Pour la DHT, quel est l'avantage d'une clé de 160 bits sur 128 bits?
- 28. Chiffrement AES 128 bits et chiffrement AES 256 bits
- 29. Produire des motifs de bits entrelacés (morton keys) pour 32 bits, 64 bits et 128 bits
- 30. Comment définir UUID 128 bits dans arduino
De quel type de propriétés votre fonction de hachage a-t-elle besoin? Devrait-il être cryptographique? A-t-il besoin d'être rapide? Je m'attendrais à ce qu'il soit cohérent entre les différentes exécutions d'un programme. – user2357112
@ user2357112 Aucune cryptographie. La valeur va être utilisée comme valeur de clé entière pour les chaînes. L'exigence de faibles collisions est un must. –
Essentiellement, vous voulez un hachage 64 bits. Wikipedia en a quelques-uns qui sont répertoriés comme 64 bits à la fois cryptographiques et non cryptographiques, y compris RIPEMD-64, Siphash, elf64, etc. Pourquoi une telle taille de hachage limitée? –