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

Format d'échange (XML, JSON...) Java Discussion :

[XML][ENCRYPTION] encoder des gros fichiers avec AES_128


Sujet :

Format d'échange (XML, JSON...) Java

  1. #1
    Futur Membre du Club
    Inscrit en
    Juillet 2002
    Messages
    9
    Détails du profil
    Informations forums :
    Inscription : Juillet 2002
    Messages : 9
    Points : 8
    Points
    8
    Par défaut [XML][ENCRYPTION] encoder des gros fichiers avec AES_128
    Salut à tous

    je suis face à un problème de perf pour l'encryption de gros fichiers XML avec un algo AES_128

    en effet la transformation prend près de 10 minutes pour un fichier de 3 Mo environ (25 000 noeuds)

    voici le code utilisé :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
     
            Document document = null;
            try {
                document = readDocument(file.getFileName());
            } catch (Exception e) {
                //gestion de l'exception
                return;
            }
     
            /*
             * Get a key to be used for encrypting the element. Here we are generating an AES key.
             */
            Key symmetricKey = null;
            try {
                symmetricKey = GenerateDataEncryptionKey();
            } catch (Exception e) {
                //gestion de l'exception
                return;
            }
            try {
     
                String algorithmURI = XMLCipher.RSA_v1dot5;
     
                XMLCipher keyCipher = XMLCipher.getInstance(algorithmURI);
                keyCipher.init(XMLCipher.WRAP_MODE, publicKey);
                EncryptedKey encryptedKey = keyCipher.encryptKey(document, symmetricKey);
     
                /*
                 * Let us encrypt the contents of the document element.
                 */
                Element rootElement = document.getDocumentElement();
     
                algorithmURI = XMLCipher.AES_128;
     
                XMLCipher xmlCipher = XMLCipher.getInstance(algorithmURI);
                xmlCipher.init(XMLCipher.ENCRYPT_MODE, symmetricKey);
     
                /*
                 * Setting keyinfo inside the encrypted data being prepared.
                 */
                EncryptedData encryptedData = xmlCipher.getEncryptedData();
                KeyInfo keyInfo = new KeyInfo(document);
                keyInfo.add(encryptedKey);
                encryptedData.setKeyInfo(keyInfo);
     
     
                xmlCipher.doFinal(document, rootElement, true);
            } catch (Exception e) {
                //gestion de l'excption
                return;
            }
    vous avez une idée du pourquoi de la lenteur ?
    (c'est pas la machine, y'a 3Go de RAM dessus et que çà qui tourne (ou presque)
    je n'y connais pas grand chose en cryptage/decryptage en java, mais si vous avez des conseils/autres apis etc. à donner pour effectuer un cryptage/decryptage rapide de gros fichiers en java çà m'intéresse

    (ps: je sais que java c'est pas ce qu'il y a de plus rapide pour le parsing et lecture de fichier ... mais bon)
    Restez Zen, vous vivre plus vieux !

  2. #2
    Expert éminent
    Avatar de GrandFather
    Inscrit en
    Mai 2004
    Messages
    4 587
    Détails du profil
    Informations personnelles :
    Âge : 54

    Informations forums :
    Inscription : Mai 2004
    Messages : 4 587
    Points : 7 103
    Points
    7 103
    Par défaut
    Bonjour,

    es-tu absolument obligé de crypter l'intégralité du document XML ? En ne cryptant que les données vraiment sensibles, tu devrais gagner un peu de temps...
    FAQ XML
    ------------
    « Le moyen le plus sûr de cacher aux autres les limites de son savoir est de ne jamais les dépasser »
    Giacomo Leopardi

  3. #3
    Futur Membre du Club
    Inscrit en
    Juillet 2002
    Messages
    9
    Détails du profil
    Informations forums :
    Inscription : Juillet 2002
    Messages : 9
    Points : 8
    Points
    8
    Par défaut
    en fait, les fichiers je les reçois tels que par un prestataire, donc j'ai pas vraiment le choix
    Restez Zen, vous vivre plus vieux !

  4. #4
    Membre du Club
    Profil pro
    Inscrit en
    Août 2004
    Messages
    30
    Détails du profil
    Informations personnelles :
    Localisation : France, Loiret (Centre)

    Informations forums :
    Inscription : Août 2004
    Messages : 30
    Points : 43
    Points
    43
    Par défaut idée?
    Citation Envoyé par marcsaker
    Salut à tous

    je suis face à un problème de perf pour l'encryption de gros fichiers XML avec un algo AES_128

    en effet la transformation prend près de 10 minutes pour un fichier de 3 Mo environ (25 000 noeuds)
    salut,
    je suis un peu en retard sur ton message... hum ... désolé, je commence juste de cette semaine un projet qui va utiliser cette techno. J'ai deux idées, une pas lumineuse, et une à tester.

    1er:
    Le problème de lenteur n'est t-il pas du aussi à la structure du document si tu prend en compte tout les noeuds/sous noeud?
    peut etre que tu pourrais essayé de modifer un peu la structure du doc, en le transformant en un seul noeud, genre convertion en base64 du docuemnt puis parès tu crypte? (heu... là c un peu bourrin), ou une autre méthode de transformation? je debute un peu dans l'utilisaton de ces technos, mais je regarderais dans cette voie

    2me
    au niveau java il existe différente implémentation des algo de crypto. Essai d'utiliser les "bouncy castle" (bouncycastle.org), qui fournissent un large choix d'algo et bien implémenté. A une certaine époque j'avais monté un proto XML-Security et j'en avait été assez satisfait

    Yx!

Discussions similaires

  1. le meilleur langage pour traiter des gros fichiers xml
    Par hansaplast dans le forum XML/XSL et SOAP
    Réponses: 7
    Dernier message: 06/07/2009, 22h35
  2. Traitement des gros fichiers avec VBA sous MsACCESS
    Par GBAGO dans le forum VBA Access
    Réponses: 1
    Dernier message: 07/11/2008, 10h48
  3. Comment travailler avec des gros fichiers
    Par gilles06 dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 11/02/2008, 10h44
  4. Upload par FTP avec des gros fichiers
    Par __fabrice dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 8
    Dernier message: 07/06/2006, 12h08
  5. Peut-on lire des gros fichiers(100k) avec "TClientSocke
    Par Fred LEM dans le forum C++Builder
    Réponses: 3
    Dernier message: 20/12/2004, 14h41

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