IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Entrée/Sortie Java Discussion :

[fichier] trouver un identifiant unique


Sujet :

Entrée/Sortie Java

  1. #1
    FFF
    FFF est déconnecté
    Membre actif Avatar de FFF
    Profil pro
    Inscrit en
    Mai 2002
    Messages
    342
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2002
    Messages : 342
    Points : 282
    Points
    282
    Par défaut [fichier] trouver un identifiant unique
    Bonjour,

    je cherche un moyen d'identifier de façon unique un fichier est-ce possible ?

  2. #2
    FFF
    FFF est déconnecté
    Membre actif Avatar de FFF
    Profil pro
    Inscrit en
    Mai 2002
    Messages
    342
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2002
    Messages : 342
    Points : 282
    Points
    282
    Par défaut
    je pensais en utilisant les 1000 premiers caractères et en prenant le md5 de ceux-ci bonne idée ? existe-t-il plus simple ?

  3. #3
    Membre du Club
    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Octobre 2005
    Messages
    29
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Chef de projet NTIC
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Octobre 2005
    Messages : 29
    Points : 43
    Points
    43
    Par défaut
    Je ne comprend pas bien ce que tu veux dire par "identifier".
    C'est quand tu le crée que tu veux lui donner un nom unique ?
    Tu as une liste de fichier et tu veux en retrouver un rapidement ?
    :

  4. #4
    FFF
    FFF est déconnecté
    Membre actif Avatar de FFF
    Profil pro
    Inscrit en
    Mai 2002
    Messages
    342
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2002
    Messages : 342
    Points : 282
    Points
    282
    Par défaut
    oui par exemple faire une base de données de fichiers du genre :

    nomfichier;taille;ID

    Or ces deux paramètres peuvent être identiques pour plusieurs fichiers. Le path du fichier ne pouvant pas intervenir puisque ces fichiers sont amenés à être déplacés...donc il faut un autre paramètre permettant de distinguer les fichiers de même nom et de même taille mais étant différent, mais associer par contre les fichiers de nom différents mais de même taille et même contenu.

  5. #5
    Membre du Club
    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Octobre 2005
    Messages
    29
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Chef de projet NTIC
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Octobre 2005
    Messages : 29
    Points : 43
    Points
    43
    Par défaut
    un petit checksum alors avec getChecksum()
    dans la classe java.util.zip.CheckedInputStream

    C'est bien ca . Non ?

    C.

  6. #6
    Membre éprouvé

    Profil pro
    Inscrit en
    Août 2003
    Messages
    878
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2003
    Messages : 878
    Points : 1 067
    Points
    1 067
    Par défaut
    Ca ou un petit coup de MD2/MD5/SHA-1/SHA-256/SHA-384/SHA-512 (voir la classe MessageDigest)...
    Un problème bien exposé
    est, pour moitié, solutionné. / La connaissance s'accroît quand on la partage, pas quand on l'impose. / La violence est le langage des faibles.

  7. #7
    FFF
    FFF est déconnecté
    Membre actif Avatar de FFF
    Profil pro
    Inscrit en
    Mai 2002
    Messages
    342
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2002
    Messages : 342
    Points : 282
    Points
    282
    Par défaut
    Merci pour vos réponses, mais sur quoi appliquer ces algorithmes ??

  8. #8
    Membre éprouvé

    Profil pro
    Inscrit en
    Août 2003
    Messages
    878
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2003
    Messages : 878
    Points : 1 067
    Points
    1 067
    Par défaut
    Citation Envoyé par FFF
    Merci pour vos réponses, mais sur quoi appliquer ces algorithmes ??
    Tu l'as dit toi-même :
    Citation Envoyé par FFF
    il faut un autre paramètre permettant de distinguer les fichiers de même nom et de même taille mais étant différent, mais associer par contre les fichiers de nom différents mais de même taille et même contenu.
    Est-ce qu'il faut qu'on te cite pour te répondre ?
    Un problème bien exposé
    est, pour moitié, solutionné. / La connaissance s'accroît quand on la partage, pas quand on l'impose. / La violence est le langage des faibles.

  9. #9
    MrX
    MrX est déconnecté
    Membre du Club
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    46
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2004
    Messages : 46
    Points : 42
    Points
    42
    Par défaut
    Md5 permet de donner une signature.
    Le probleme vient que c'est signature ne sont pas necessairement uniques.
    Je pense que le plus simple pour toi est de modifier le nom ou d'ajouter un champ date JJ/MM/AAAA-hh:mm:ss

    Bon courage @++Xav

  10. #10
    FFF
    FFF est déconnecté
    Membre actif Avatar de FFF
    Profil pro
    Inscrit en
    Mai 2002
    Messages
    342
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2002
    Messages : 342
    Points : 282
    Points
    282
    Par défaut
    Citation Envoyé par MrX
    Md5 permet de donner une signature.
    Le probleme vient que c'est signature ne sont pas necessairement uniques.
    Je pense que le plus simple pour toi est de modifier le nom ou d'ajouter un champ date JJ/MM/AAAA-hh:mm:ss

    Bon courage @++Xav
    En faisant le md5 de 1000 caractères d'un fichier il me semble qu'il n'y a aucune chance pour avoir 2 fois la même ID ou alors explique moi comment car je pense qu'il faudrait revoir tout les systèmes de sécurité du net alors...
    La difficulté du pb vient du fait qu'ils faut s'imaginer que ces fichiers peuvent changer de répertoire, de date de création, de nom et qu'il faut éviter à tout prix d'avoir 2 ID différentes pour un même fichier même si celui-ci n'a pas le même nom le but c'est de pouvoir identifier un fichier, sans son path, ni sa date de création, ni même son nom ni même sa taille (plusieurs fichiers de même extension peuvent avoir le même nom et la même taille mais ont un contenu différent) !!!

  11. #11
    Membre expérimenté Avatar de herve91
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    1 282
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 1 282
    Points : 1 608
    Points
    1 608
    Par défaut
    Pour info, c'est quoi le md5 ?
    Indépendamment de ça, ton problème est d'associer une valeur supposée unique à une série de 1000 caractères. Un simple calcul montre que cela est impossible. En supposant un caractère codé sur un octet, sa valeur numérique est donc comprise entre 0 et 255.
    On a donc : 255^1000 série possibles de 1000 caractères, ce qui est un nombre immensément grand. Je suppose que le md5 est une valeur calculée à partir des 1000 caractères, si par exemple il est codé sur 128 bits, il permet de différencier 2^128 fichiers différents. Ayant d'un côté 2^128 possibilités d'identification, et de l'autre 255^1000 séries, il est clair qu'un nombre immensément grand de fichiers différents donneront le même md5.

  12. #12
    FFF
    FFF est déconnecté
    Membre actif Avatar de FFF
    Profil pro
    Inscrit en
    Mai 2002
    Messages
    342
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2002
    Messages : 342
    Points : 282
    Points
    282
    Par défaut
    Je ne connais pas la longueur de la chaîne renvoyée par l'algorithme du MD5, je suppose qu'elle doit très légèrement augmenter avec le nombre de caractères que tu lui donnes en entrée, donc 128 bits (16 octets~16caractères) c'est vraiment un minimum !!!!! c'est plutôt entre 20 ou 30.
    Au sens mathématique ta remarque me semble intéressante, existant infiniment plus de fichiers différents que d'identifiants, ça coince !!! Mais ne nous laissons pas impressionner par les chiffres et restons concrets, même si 255^1000>>>>>>>>>>.....>>>>2^128, on a tout de même 2^128=3,..x10E34 identifiants différents !!!!!!!!
    Voyons un peu les limites théoriques du système :
    Compte 1000 octets par fichier (c'est le minimum et maximum du pb) soit 1ko.
    Si l'on avait disons autant de fichier que d'identifiants (c'est ce cas là où cette methode atteint ses limites), alors il faudrait tout de même un esapce disque de :
    3,...x10E28 Go si mon appli était destinée à environ 1 000 000 de personnes (impossible ça c sûr !) ça fait un esapce disque de 3,...X10E22 Go/personne, autrement dit le système a de beau jours devant lui, avant d'en arriver là !!!!!!
    Donc à la base, il y a infiniment moins de fichiers différents que d'identifiants (physiquement parlant) !!!!!!
    De plus, (là fo confirmer) je crois que le début d'un fichier est constitué d'entêtes (nom, taille, résultion, extension, commentaires et des trucs comme cela), donc parmis ces 1000 caractères, seulement 500 diffèrent peut-être moins, et c'est là le force du MD5, même si très peu de carctères varient, le md5 donne des identifiants très différents d'où son utilisation pour les mots de passes de 8 caractères.

    J'espère t'avoir convaincu !!!

  13. #13
    Membre expérimenté Avatar de herve91
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    1 282
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 1 282
    Points : 1 608
    Points
    1 608
    Par défaut
    Citation Envoyé par FFF
    Mais ne nous laissons pas impressionner par les chiffres et restons concrets, même si 255^1000>>>>>>>>>>.....>>>>2^128, on a tout de même 2^128=3,..x10E34 identifiants différents !!!!!!!!
    En fait, c'est 256^1000...
    Oui, on a 2^128=3,..x10E34 identifiants différents et on a 256^1000 fichiers possibles, dont une approximation est 10^2400.... Il y a plus de 10^2350 fichiers différents pour un identifiant.
    Citation Envoyé par FFF
    d'où son utilisation pour les mots de passes de 8 caractères.
    Remarque bien que 256^8 = 18E18 <<< 3,..x10E34
    Citation Envoyé par FFF
    J'espère t'avoir convaincu !!!
    Ben je ne connais pas l'algo du md5, faudrait voir comment il procède pour "en déduire" (euh.. pas sûr) les cas de collision.

  14. #14
    FFF
    FFF est déconnecté
    Membre actif Avatar de FFF
    Profil pro
    Inscrit en
    Mai 2002
    Messages
    342
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2002
    Messages : 342
    Points : 282
    Points
    282
    Par défaut
    Remarque bien que 256^8 = 18E18 <<< 3,..x10E34
    Faux !!!!! et je ne vois pas le rapport entre ces 2 nombres !!

    Renseigne toi sur le md5, c'est un algorithme qui a fait ses preuves je suis pas un pro du cryptage, mais c'est utilisé de partout donc....
    Je disais que le MD5 est utilisé pour crypter des mots de passe de l'ordre de 8 caractères (+ou-) ex :
    mot de passe : pomme
    MD5 te donnera : ede0f9c3a1d2093e3f48fcafd3c70915
    donc c'est 256^???? on ne connait pas la longeur du résulat, simplement c'est sûrement plus grand que 16 caractères (128 bits) mais cette longueur est limitée.
    Mais cet exemple n'a aucun rapport avec ce que je disais plus haut !

    Pour moi il est clair que ce système n'a pas encore atteint ses limites, puisqu'il ne peut pas exister plus de fichiers que d'identifiants !

  15. #15
    Membre éprouvé

    Profil pro
    Inscrit en
    Août 2003
    Messages
    878
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2003
    Messages : 878
    Points : 1 067
    Points
    1 067
    Par défaut
    1) la fonction de "hachage" MD5 renvoit toujours 16 octets
    2) pour identifier un fichier en utilisant MD5, il faut faire le calcul avec le contenu de TOUT le fichier (et pas seulement les 1000 premiers octets) [1]
    3) MD5 (comme SHA/SHA-?/RIPEMD160/etc) a été conçue pour éviter les collisions, donc il ne faut pas se laisser intimider par la petitesse du résultat. Certes, sur 16 octets, le nombre de valeurs possibles semble minuscule par rapport au nombre de fichiers différents qui pourraient exister, mais la probabilité que deux fichiers produisent le même hash reste très faible (et c'est pour cela que ce type d'algorithme est utilisé pour vérifier l'intégrité des fichiers)
    4) Si vous avez des doutes concernant la qualité de MD5, vous pouvez toujours adresser vos commentaires à M. Rivest (rivest@theory.lcs.mit.edu) qui a écrit entre autres dans la RFC1321 :
    Security Considerations

    The level of security discussed in this memo is considered to be
    sufficient for implementing very high security hybrid digital-
    signature schemes based on MD5 and a public-key cryptosystem.
    Et puis ne mettez pas trop de points d'exclamation dans vos messages : on pourrait croire que vous vous énervez

    [1] : imaginez 2 images bitmap de 3000x3000 en 24 bits, toutes les deux ayant une grande zone noire en bas (dans un bmp, les lignes sont stockées de bas en haut si ma mémoire est bonne) mais dont le haut est différent : les 1000 premiers octets ont toutes les chances d'être identiques alors que les fichiers seront différents
    Un problème bien exposé
    est, pour moitié, solutionné. / La connaissance s'accroît quand on la partage, pas quand on l'impose. / La violence est le langage des faibles.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 1
    Dernier message: 24/01/2015, 21h39
  2. identifiant unique fichier (Systeme)
    Par Nico_tournai dans le forum Général Python
    Réponses: 12
    Dernier message: 16/04/2013, 16h59
  3. Réponses: 1
    Dernier message: 23/10/2009, 23h12
  4. [DB2] Identifiant unique
    Par kluh dans le forum DB2
    Réponses: 1
    Dernier message: 24/05/2005, 12h20
  5. l'identifiant unique de la dernière ligne insérée
    Par dim_italia dans le forum PostgreSQL
    Réponses: 1
    Dernier message: 23/08/2004, 17h55

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo