MD5
Fermé
linusien
Messages postés
168
Date d'inscription
dimanche 31 août 2008
Statut
Membre
Dernière intervention
28 avril 2018
-
29 oct. 2011 à 18:10
linusien Messages postés 168 Date d'inscription dimanche 31 août 2008 Statut Membre Dernière intervention 28 avril 2018 - 30 oct. 2011 à 09:23
linusien Messages postés 168 Date d'inscription dimanche 31 août 2008 Statut Membre Dernière intervention 28 avril 2018 - 30 oct. 2011 à 09:23
A voir également:
- MD5
- Md5 checksum - Télécharger - Web & Internet
- Md5 decrypt ✓ - Forum Programmation
- Md5 download - Télécharger - Gestion de fichiers
- Md5 windows - Astuces et Solutions
- Md5 format ✓ - Forum Linux / Unix
3 réponses
Pacorabanix
Messages postés
3245
Date d'inscription
jeudi 23 août 2007
Statut
Membre
Dernière intervention
19 mai 2013
658
Modifié par Pacorabanix le 29/10/2011 à 18:31
Modifié par Pacorabanix le 29/10/2011 à 18:31
ben justement, les bases de données sont optimisées pour accéder à des éléments rapidement entre autres grace à des hash, et des tables de hachage.
https://fr.wikipedia.org/wiki/Table_de_hachage
en gros, la base de donnée n'a qu'à tester au pire une poignée de valeurs avant de tomber sur la bonne, plus de calculer un hash avant (ce qui est vite fait)
on arrive à accéder aux données de la table en temps asymptotiquement constant ( O(1) )
https://fr.wikipedia.org/wiki/Table_de_hachage
en gros, la base de donnée n'a qu'à tester au pire une poignée de valeurs avant de tomber sur la bonne, plus de calculer un hash avant (ce qui est vite fait)
on arrive à accéder aux données de la table en temps asymptotiquement constant ( O(1) )
linusien
Messages postés
168
Date d'inscription
dimanche 31 août 2008
Statut
Membre
Dernière intervention
28 avril 2018
6
29 oct. 2011 à 18:32
29 oct. 2011 à 18:32
merci de ta reponse
linusien
Messages postés
168
Date d'inscription
dimanche 31 août 2008
Statut
Membre
Dernière intervention
28 avril 2018
6
29 oct. 2011 à 18:36
29 oct. 2011 à 18:36
et comment hasher une table?
Pacorabanix
Messages postés
3245
Date d'inscription
jeudi 23 août 2007
Statut
Membre
Dernière intervention
19 mai 2013
658
29 oct. 2011 à 20:45
29 oct. 2011 à 20:45
on ne "hash" pas une table, on utilise une table de hachage pour placer les éléments dans la table.
par exemple, imagine que tu as ces informations à entrer dans ta table :
albert, john, toto, suzanne et encore cent mille autres noms.
et ta table, imaginons, à de l'espace pour mettre 1 million d'élément.
il y a la case 1, la case 2, la case 3, etc.... jusqu'à la case 1'000'000
tu as cette possibilité par exemple, qui est mauvaise :
mettre les noms dans ta table à la suite ,séquentiellement, selon l'ordre d'arrivée :
dans la case 1 il y a albert, dans la case 2 on met john, dans la case 3 on met toto etc....
maintenant imagine on désire retrouver un nom dans la table (car on y a mis des adresses avec, et on veux retrouver l'adresse de qq'un).
a priori, on ne sais pas à l'avance où on a mis les noms. il faut regarder chaque case jusqu'à ce qu'on le trouve.
si c'est john ou albert, on va vite tomber dessus. mais si on cherche un nom qui a été mis en 100'000ème position, la base de donnée dois chercher dans 100'000 cases avant de trouver le nom et l'adresse !
c'est très mauvais.
à la place, on va placer les noms selon le résultat d'une fonction de hachage (peu importe la fonction, mais certaines sont mieux, voir par exemple l'article de wikipedi et les très nombreuses ressources disponibles sur le net à ce sujet)
par exemple, john est hashé en 318'235 : alors on va mettre john, au moment de l'entrer dans la table, à la 318'235ème position.
lorsqu'on cherche john dans la table, on calcule son hash, c'est 318'235, alors la base va directmeent chercher à la case 318'235
il peut arriver que plusieurs noms, plusieurs données, donnent le même hachage. (on appelle ça une collision), dans ce cas il y a plusieurs manières de se débrouiller, mais s'il n'y a pas beaucoup de collision, ça ne fait que retarder la recherche de quelques essais (à compter sur les doigts de la main, donc bien mieux que d'essayer 100'000 valeurs !)
par exemple, imagine que tu as ces informations à entrer dans ta table :
albert, john, toto, suzanne et encore cent mille autres noms.
et ta table, imaginons, à de l'espace pour mettre 1 million d'élément.
il y a la case 1, la case 2, la case 3, etc.... jusqu'à la case 1'000'000
tu as cette possibilité par exemple, qui est mauvaise :
mettre les noms dans ta table à la suite ,séquentiellement, selon l'ordre d'arrivée :
dans la case 1 il y a albert, dans la case 2 on met john, dans la case 3 on met toto etc....
maintenant imagine on désire retrouver un nom dans la table (car on y a mis des adresses avec, et on veux retrouver l'adresse de qq'un).
a priori, on ne sais pas à l'avance où on a mis les noms. il faut regarder chaque case jusqu'à ce qu'on le trouve.
si c'est john ou albert, on va vite tomber dessus. mais si on cherche un nom qui a été mis en 100'000ème position, la base de donnée dois chercher dans 100'000 cases avant de trouver le nom et l'adresse !
c'est très mauvais.
à la place, on va placer les noms selon le résultat d'une fonction de hachage (peu importe la fonction, mais certaines sont mieux, voir par exemple l'article de wikipedi et les très nombreuses ressources disponibles sur le net à ce sujet)
par exemple, john est hashé en 318'235 : alors on va mettre john, au moment de l'entrer dans la table, à la 318'235ème position.
lorsqu'on cherche john dans la table, on calcule son hash, c'est 318'235, alors la base va directmeent chercher à la case 318'235
il peut arriver que plusieurs noms, plusieurs données, donnent le même hachage. (on appelle ça une collision), dans ce cas il y a plusieurs manières de se débrouiller, mais s'il n'y a pas beaucoup de collision, ça ne fait que retarder la recherche de quelques essais (à compter sur les doigts de la main, donc bien mieux que d'essayer 100'000 valeurs !)
linusien
Messages postés
168
Date d'inscription
dimanche 31 août 2008
Statut
Membre
Dernière intervention
28 avril 2018
6
30 oct. 2011 à 09:23
30 oct. 2011 à 09:23
bonjour a tous comment creer une table de hachage?