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]probleme de lecture d une clé


Sujet :

Entrée/Sortie Java

  1. #1
    Membre actif
    Inscrit en
    Décembre 2005
    Messages
    251
    Détails du profil
    Informations forums :
    Inscription : Décembre 2005
    Messages : 251
    Points : 267
    Points
    267
    Par défaut [fichier]probleme de lecture d une clé
    Bonjour a tous. J'ai un drole de souci.


    Mon projet consiste à pouvoir signer électroniquement des documents sur un intranet par insertion d'une clé usb. L'intranet est écrit en php.

    La clé privée pour signer est stockée sur une clé usb. Quand un utilisateur choisi signature électronique l'intranet attend que la clé lui soit envoyé par socket. J'ai donc créé une petite application client en PHP qui detecte la clé USB , qui extrait la clé pivé et qui envoie la clé au serveur. Cette application marche nickel. Mais voila c'est pas tres portable. J'ai donc décider de refaire cette petite applic client en java.

    Dans le client java j'ai un bug assez important quand je lis le fichier qui contient la clé alors que ça fonctionnait tres bien en PHP.

    J'ai donc fais des petites comparaisons entre l'ouverture de ce fichier en PHP et en JAVA.

    voici le test en PHP(je sais on est dan le forum java mais c est pas long).


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    $f=fopen ("E:\carte\bbibi\baba_bibi.pem","r");
    						$cle_chaine=fread($f,2048);
     
     
    echo "cle chaine a pour longueur".strlen($cle_chaine);
    Ce code me renvoie "la cle chaine a pour longueur 1679". Cette chaine est une clé correct j'arrive a la convertir en ressource clé privé pour openSSL.

    En java j'ai fais le test suivant sur le même fichier.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    String chemin="E:\\carte\\bbibi\\baba_bibi.pem";
    String cle="";
    BufferedReader rf =new BufferedReader(new FileReader("chemin));
    		int nb_carac=0;
    		while ( (s=rf.readLine())!=null)
    		{
    		s1=s1+s;
    		}
     
    cle=s1;
    System.out.println("longueur de cle="+cle);
    Ce test me renvoie longueur de cle=1652.J'envoie cette chaine au serveur et j'essai de la convertir en ressource cle privé evidemment ça ne fonctionne pas.


    Ma question est pourquoi en lisant ce fichier en JAVA il m'enleve des caracteres alors qu en PHP ce n'est pas le cas?

    Est ce que j'utilise la bonne classe pour lire dans le fichier(j'ai vu cette façon de parcouri un fichier dans "penser en Java").

    Je mis la clé dans un fichier texte meme si je pense que ce n'est pas la même chose que le fichier PEM
    Fichiers attachés Fichiers attachés

  2. #2
    Membre actif
    Inscrit en
    Décembre 2005
    Messages
    251
    Détails du profil
    Informations forums :
    Inscription : Décembre 2005
    Messages : 251
    Points : 267
    Points
    267
    Par défaut
    c'est resolu!

    C est la lecture ligne par ligne qui posait problème pour une raison que j'ignore. J'ai essayé caractère par caractère puis en concatenant ces caractères et ça marche bien.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    BufferedReader rf =new BufferedReader(new FileReader(chemin));
    File f =new File(chemin);
     
    	    int j=0;
    	    String cle="";
    	    int tab[]=new int[5000];
    	    for(int i=0;i<f.length();i++)
    	    {
    	    	j=rf.read();
    	    	cle=cle+(char)j;
    	    	j++;
     
    	    }
    (si un modo pouvait changer mon titre de topic c est pas "lecture d'une clé" que je voulais mettre mais "lecture d'un fichier".)

  3. #3
    Membre régulier Avatar de gelam
    Profil pro
    Inscrit en
    Novembre 2003
    Messages
    69
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Novembre 2003
    Messages : 69
    Points : 74
    Points
    74
    Par défaut
    Bonjour,
    tu pourrais essayer de lire dans un tableau de bytes et éviter ainsi le traitement des marques de fin de ligne.
    Avec ce code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
            String chemin="cle.txt";
            byte[] cle=new byte[2048];
            DataInputStream rf =new DataInputStream( new FileInputStream(chemin) );
     
            int nbLu = rf.read(cle);
     
            System.out.println("longueur de cle="+nbLu);
    J'obtiens une cle de longueur 1656 qui est la longueur exacte du fichier.

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

Discussions similaires

  1. [AC-2003] probleme de lecture d'une table
    Par chuspyto dans le forum IHM
    Réponses: 16
    Dernier message: 25/04/2012, 16h56
  2. [FICHIERS] Probleme de lecture
    Par SbY11 dans le forum Débuter
    Réponses: 3
    Dernier message: 27/04/2011, 19h29
  3. [MySQL] Probleme de lecture d'une table
    Par kev484 dans le forum PHP & Base de données
    Réponses: 1
    Dernier message: 30/06/2009, 16h59
  4. [Fichier] Problème de lecture fichier PPM P5
    Par lusiole dans le forum C
    Réponses: 6
    Dernier message: 06/08/2007, 10h47
  5. Probleme de lecture d'une table
    Par Slaash0 dans le forum Access
    Réponses: 4
    Dernier message: 02/04/2007, 14h00

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