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

Langage Java Discussion :

Comment faire un fichier virtuel


Sujet :

Langage Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Janvier 2011
    Messages
    81
    Détails du profil
    Informations forums :
    Inscription : Janvier 2011
    Messages : 81
    Par défaut Comment faire un fichier virtuel
    Hello à tous,

    J'ai une application utilisant SQLite et je dois faire en sorte que toutes les données soient cryptées.
    Plutôt que de crypter les données à la volée (plein de code à modifier et perfs), je me demandais si il était possible de faire une espèce de fichiers virtuel.
    Qui serait donc stocké en RAM seulement mais accessible comme un File classique.
    Comme ça, il me suffirait de crypter/décrypter les fichiers lors de leur ouverture/fermeture.

    J'ai cherché sur le Web mais je n'ai pas trouvé de piste.

    Merci

  2. #2
    Membre averti
    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    42
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 42
    Par défaut
    Bonjour,

    tu devrais esayer de créer un disque en mémoire.

    si tu est sur seven essaye celui-ci

    download-Ramdisk

    Bon courrage
    Jean-Christophe

  3. #3
    Membre confirmé
    Inscrit en
    Janvier 2011
    Messages
    81
    Détails du profil
    Informations forums :
    Inscription : Janvier 2011
    Messages : 81
    Par défaut
    Je n'y avais pas pensé.... mais l'application doit rester portable Mac/Linux et Windows.
    Je cherche une solution purement Java.

  4. #4
    Rédacteur/Modérateur
    Avatar de Logan Mauzaize
    Homme Profil pro
    Architecte technique
    Inscrit en
    Août 2005
    Messages
    2 894
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Architecte technique
    Secteur : Transports

    Informations forums :
    Inscription : Août 2005
    Messages : 2 894
    Par défaut
    Sinon tu te limites aux classe File/FileInputStream/FileOutputStream, ca sera impossible.

    En revanche tu peux passer par des URI/URL et URLStreamHandlerFactory avec ton propre "scheme" ou protocole.
    Plus simplement tu peux avoir une Map avec un identifiant quelconque en clé (UUID ou String) et un tableau de byte en valeur.
    Java : Cours et tutoriels - FAQ - Java SE 8 API - Programmation concurrente
    Ceylon : Installation - Concepts de base - Typage - Appels et arguments

    ECM = Exemple(reproduit le problème) Complet (code compilable) Minimal (ne postez pas votre application !)
    Une solution vous convient ? N'oubliez pas le tag
    Signature par pitipoisson

  5. #5
    Membre confirmé
    Inscrit en
    Janvier 2011
    Messages
    81
    Détails du profil
    Informations forums :
    Inscription : Janvier 2011
    Messages : 81
    Par défaut
    Citation Envoyé par Nemek Voir le message
    Sinon tu te limites aux classe File/FileInputStream/FileOutputStream, ca sera impossible.
    C'est bien ce que je cherche à contourner.

    J'ai bien lu des trucs en rapport avec ByteArrayOutputStream mais je n'ai pas saisie l'intérêt que je pouvais y avoir pour mon problème.
    Si j'ai bien compris, çà permet de générer un fichier en mémoire, mais pas de pouvoir le donner à:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    java.sql.Connection.DriverManager.getConnection("jdbc:sqlite:" + nom_du_fichier)
    C'est bien là mon soucis, le getConnection du driver sqlite ne prend qu'un nom de fichier.

    Je vais regarder du coté URLStreamHandlerFactory comme tu me le conseille.

    Pourrais tu m'en dire un peu plus sur ton idée du Map?

  6. #6
    Rédacteur/Modérateur
    Avatar de Logan Mauzaize
    Homme Profil pro
    Architecte technique
    Inscrit en
    Août 2005
    Messages
    2 894
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Architecte technique
    Secteur : Transports

    Informations forums :
    Inscription : Août 2005
    Messages : 2 894
    Par défaut
    D'après la documentation
    In order to deal with SQLite's in-memory databases, use a JDBC URL with this format:

    jdbc:sqlite:/:memory:
    Si tu veux crypter des données d'une base de données orientée fichier, soit tu utilises une base de données qui le fait, soit tu cryptes toutes les données, soit tu utilises un système de fichier crypté !
    Java : Cours et tutoriels - FAQ - Java SE 8 API - Programmation concurrente
    Ceylon : Installation - Concepts de base - Typage - Appels et arguments

    ECM = Exemple(reproduit le problème) Complet (code compilable) Minimal (ne postez pas votre application !)
    Une solution vous convient ? N'oubliez pas le tag
    Signature par pitipoisson

  7. #7
    Membre Expert

    Homme Profil pro
    Responsable des études
    Inscrit en
    Mars 2009
    Messages
    553
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Responsable des études
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2009
    Messages : 553
    Par défaut
    Et utiliser des fichiers temporaires, c'est pas possible?

  8. #8
    Rédacteur/Modérateur
    Avatar de Logan Mauzaize
    Homme Profil pro
    Architecte technique
    Inscrit en
    Août 2005
    Messages
    2 894
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Architecte technique
    Secteur : Transports

    Informations forums :
    Inscription : Août 2005
    Messages : 2 894
    Par défaut
    La solution de la map partait du principe que tu manipulais directement des bytes.
    La solution du URLStreamHandlerFactory partait du principe que tu manipulais des URL/URIs.
    Si tu restes sur SQLite, ce n'est pas une solution envisageable.

    Les solutions réelles :
    • Tu utilises un système de fichier crypté.
    • SI POSSIBLE Tu fais une base de données en mémoire, tu la "dump" dans un tableau d'octets (éventuellement à l'aide de ByteArrayOutputStream), tu cryptes le tableau d'octet et enfin tu écris les données cryptées sur le disque. Pour recharger tu fais l'opération inverse
    • Tu changes de SGBD


    Solutions moins réalisables :
    Tu modifies le code de SQLite pour qu'il crypte les données à la volée.


    Concernant le driver JDBC, s'il ne supporte pas une fonction : code là toi-même ou change de fournisseur !
    Java : Cours et tutoriels - FAQ - Java SE 8 API - Programmation concurrente
    Ceylon : Installation - Concepts de base - Typage - Appels et arguments

    ECM = Exemple(reproduit le problème) Complet (code compilable) Minimal (ne postez pas votre application !)
    Une solution vous convient ? N'oubliez pas le tag
    Signature par pitipoisson

  9. #9
    Membre confirmé
    Inscrit en
    Janvier 2011
    Messages
    81
    Détails du profil
    Informations forums :
    Inscription : Janvier 2011
    Messages : 81
    Par défaut
    Après avoir examiner vos différentes idées je pense qu'il faut effectivement que je m'oriente vers un changement de la base de données.
    H2 me plait beaucoup.

    Les autres possibilités impliquent trop de code et de prise de tête.

    Merci beaucoup à vous deux pour le temps que vous m'avez consacré

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

Discussions similaires

  1. Réponses: 8
    Dernier message: 06/03/2009, 16h07
  2. [débutant]Comment faire des fichiers log
    Par smutmutant2003 dans le forum Shell et commandes GNU
    Réponses: 8
    Dernier message: 12/06/2007, 15h39
  3. [SOLARIS] Comment faire un lien virtuel avec unix
    Par diamonds dans le forum Solaris
    Réponses: 3
    Dernier message: 16/02/2007, 09h37
  4. Réponses: 10
    Dernier message: 06/02/2007, 21h34
  5. Réponses: 6
    Dernier message: 22/08/2006, 15h37

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