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

SQL Procédural MySQL Discussion :

cryptage table sql


Sujet :

SQL Procédural MySQL

  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 8
    Par défaut cryptage table sql
    bonjour,
    j'ai plusieurs table sql
    ces tables contiennent des donnees confidentielles
    je voudrai les crypter
    comment faire???

  2. #2
    Rédacteur
    Avatar de pcaboche
    Homme Profil pro
    Inscrit en
    Octobre 2005
    Messages
    2 785
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : Singapour

    Informations forums :
    Inscription : Octobre 2005
    Messages : 2 785
    Par défaut
    Fonctions de cryptage/décryptage:
    http://dev.mysql.com/doc/refman/5.1/...functions.html

    Qu'est-ce que tu cherches à faire exactement?
    "On en a vu poser les armes avant de se tirer une balle dans le pied..."
    -- pydévelop

    Derniers articles:

    (SQL Server) Introduction à la gestion des droits
    (UML) Souplesse et modularité grâce aux Design Patterns
    (UML) Le Pattern Etat
    Autres articles...

  3. #3
    Membre habitué
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 8
    Par défaut
    je veux créer des tables sql à partir d'un fichier .txt
    et je veux que le contenu de cette table soit crypter

  4. #4
    Rédacteur
    Avatar de pcaboche
    Homme Profil pro
    Inscrit en
    Octobre 2005
    Messages
    2 785
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : Singapour

    Informations forums :
    Inscription : Octobre 2005
    Messages : 2 785
    Par défaut
    Ce qui m'intéressais, c'était de savoir comment tu connais la clef de cryptage ainsi que les raisons du cryptage (ex: être en règle vis-à-vis de la CNIL).

    Par exemple, si tu as des utilisateurs qui ont leur compte protégé par un mot de passe, il ne faut pas que le mdp apparaisse en clair dans la BDD, donc on le "crypte" avec une fonction non réversible (telle que MD5 ou SHA1). Ensuite c'est ce mot de passe crypté que l'on stocke dans la BDD, sous forme de VARCHAR (pour ne pas perdre de caractères, sinon on ne peut plus se logger) : INSERT INTO user(login, mdp_md5) VALUES($login, MD5($mdp) ).

    Après, on décrypte à partir du mdp utilisateur:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    SELECT
      IF( 
        MD5($mdp)=user.mdp_md5,
        DECODE(table.champ_crypte, $mdp),
        NULL
      )
    ...
    Par contre, si l'utilisateur perd son mot de passe, il devient difficile voire impossible de récupérer les données cryptées (selon l'algo et la config utilisée, voir manuel). De plus, si l'utilisateur change de mdp, il faudra réencrypter les données avec le nouveau mdp.



    Maintenant, revenons à ton problème (crypter à partir d'un fichier texte):

    Pour insérer le contenu d'un fichier texte dans une table, on utilise la fonction LOAD DATA INFILE (http://dev.mysql.com/doc/refman/5.1/en/load-data.html), cependant, il n'est pas possible d'appliquer une fonction (telle que ENCODE, ENCRYPT, AES_ENCRYPT...) sur les divers champs lus. Il faut donc faire plusieurs opérations:

    1) Dans une table temporaire, faire un LOAD DATA INFILE en précisant les paramètres qui nous intéressent (notamment le séparateur).

    2) Insérer dans ta table le contenu dans ta table temporaire, après cryptage des données:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    INSERT INTO matable(champ1, ...)
    SELECT 
      ENCODE(champ1, "clef"),
       ...
    FROM tableTemporaire
    ou:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    INSERT INTO matable(mdp_md5, champ1, ...)
    SELECT 
      MD5(mdp),
      ENCODE(champ1, mdp),
       ...
    FROM tableTemporaire

    3) Vider la table temporaire (TRUNCATE) car elle contient les données en clair, ou la détruire complètement

    Maintenant, on en revient à la question de départ: où se trouve la clef de cryptage/décriptage? (mot de passe utilisateur ou la même partout?)

    Ai-je été clair?
    "On en a vu poser les armes avant de se tirer une balle dans le pied..."
    -- pydévelop

    Derniers articles:

    (SQL Server) Introduction à la gestion des droits
    (UML) Souplesse et modularité grâce aux Design Patterns
    (UML) Le Pattern Etat
    Autres articles...

Discussions similaires

  1. cryptage de colonne d'une table SQL avec jasypt
    Par djolof dans le forum Sécurité
    Réponses: 0
    Dernier message: 19/06/2009, 15h13
  2. Pooling sur une table SQL
    Par Jean-Jacques Engels dans le forum Bases de données
    Réponses: 5
    Dernier message: 04/11/2004, 23h10
  3. [PHPMyAdmin] Renommer une table SQL
    Par ferdi67 dans le forum Outils
    Réponses: 2
    Dernier message: 04/10/2004, 09h39
  4. [C#] Récupération d'une image depuis une table SQL Server
    Par borgfabr dans le forum Accès aux données
    Réponses: 10
    Dernier message: 08/04/2004, 13h20
  5. [DEB.] - Transposer une table SQL en XML SCHEMA ???
    Par oulahoup dans le forum Valider
    Réponses: 2
    Dernier message: 10/06/2003, 15h11

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