Des indexes sous PostgreSQL qui sont spécialisés dans la recherche textuelle.
Et aussi ce lien sur les indexes BRIN spécialisés dans les données immutables.
Et cet autre lien sur les indexes HASH.
Brihx merci pour le lien. Par contre le coup des fonctions de dérivation de clefs qui doivent êtres rejouées n-fois pour éviter le brut-force j'ai toujours trouvé cela stupide et je m'explique.
Le but d'augmenter le nombre d'itérations est de ralentir l'algorithme de hash/crypto afin de se protéger des attaques de type brut-force. Or la puissance de calcul augmentant sans cesse avec le temps, plus les générations de CPU passent et plus il faut augmenter ce nombre d'itérations, ceci encore et toujours, jusqu'à consommer tout le pétrole sur terre pour le calcul d'un simple hash...
Sinon, on arrête de coder comme des profs de math débiles et on ajoute un Thread.sleep(1000)
après le calcul du hash. Comme ça et quoi qu'il arrive, le check d'un mot de passe prendra toujours au moins 1 seconde quelque soit le CPU derrière, évitant ainsi les attaques du type brut-force, et en plus ça évite de contraindre un algo à utiliser un proc à 100% pour rien et ainsi de exposer son service à des attaques de type DDos.
Après ce n'est pas le rôle des matheux de coder efficace, c'est à nous (les IT) de comprendre ce qu'il faut faire et de bien le faire.
Edit : oubliez BLAKE2... J'avais lu en diagonale puisque le site explique que BLAKE3 est encore plus rapide !
Je recherchais un algorithme de hachage qui soit optimisé pour des machines 64 bits, aussi sécurisé que SHA-512 voire SHA-3 mais surtout aussi rapide que MD5. Il semblerait que nous ayons notre silver bullet : BLAKE2.
L'algo est déjà implémenté dans Bouncy Castle, et je compte bien faire joujou avec pour tester la bête.
Un petit benchmark pour comparer les vitesses de calcul de SHA-256 vs SHA-512. Je pense que ce test a été fait sur une machine 32. Une tendance émerge de plusieurs sites à propos de SHA-512 :
- Dès que la string à hacher dépasser les 64 caractères, SHA-512 devient le plus rapide.
- Dès que l'architecture + OS sont en 64-bits, SHA-512 est le plus rapide.
Conclusion, je garde SHA-512 pour mes hachés stockés en base.
Quel est la meilleure fonction de hachage à utiliser pour des hashmap ?
Les bonnes pratiques pour calculer des hash de mot de passes.
Très très bien, vraiment très très bien.