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

VB.NET Discussion :

Crypter Fonction Serialisation


Sujet :

VB.NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Décembre 2008
    Messages
    67
    Détails du profil
    Informations forums :
    Inscription : Décembre 2008
    Messages : 67
    Par défaut Crypter Fonction Serialisation
    Bonjour,

    J'ai une fonction Serialisation et Deserialisation d'un flux XML mais je voudrais les crypter pour quel sécurisé et qu'on puisse pas les lires et comprendre .
    J'ai cherché sur le forum mais je n'ai pas trouvé de réponses approprié a mon code . Je voudrais pas quelque chose de compliqué ,juste un fonction qui existe déjà .

    Voila les fonctions :

    Serialisation :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    Private Sub Serialisation()
     'On crée le fichier et récupère son flux
            Dim FluxDeFichier As FileStream = File.Create("Bibliotheque.bin")
            Dim Serialiseur As New XmlSerializer(GetType(List(Of Info)))
            'Serialisation et écriture
            Serialiseur.Serialize(FluxDeFichier, Liste)
            'FerMeture du fichier
            FluxDeFichier.Close()
        End Sub
    Deserialisation :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
       Private Sub Deserialisation()
                 If File.Exists("Bibliotheque.bin") Then
                'On ouvre le fichier et recupere son flux
                Dim FluxDeFichier As Stream = File.OpenRead("Bibliotheque.bin")
                Dim Deserialiseur As New XmlSerializer(GetType(List(Of Info)))
                'Désérialisation et convertion de ce qu'on récupère dans le type
                Liste = Deserialiseur.Deserialize(FluxDeFichier)
                'FerMeture du flux
                FluxDeFichier.Close()
            End If
        End Sub
    Merci de m'aider et de m'expliquer comment faire .

  2. #2
    Membre chevronné Avatar de Jerede
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mai 2010
    Messages
    271
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Mai 2010
    Messages : 271
    Par défaut
    Bonjour,
    Il y'a tellement de façon différentes de crypter des données que c'est dur de te proposer quelque chose sans connaitre plus de détails ; précise le contexte. Niveau de sécurité, entre qui se fait l'échange de donnée, taille des données, ect.

  3. #3
    Membre averti
    Inscrit en
    Décembre 2008
    Messages
    67
    Détails du profil
    Informations forums :
    Inscription : Décembre 2008
    Messages : 67
    Par défaut
    Je voudrais une fonction qui crypte les données , par exemple sur une échelle de 10 , à 5 . Ensuite les fichiers font juste quelques centaines de Ko .

  4. #4
    Membre confirmé
    Avatar de Psycadi
    Homme Profil pro
    Chef de projet - Expert en message box
    Inscrit en
    Juillet 2003
    Messages
    147
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France

    Informations professionnelles :
    Activité : Chef de projet - Expert en message box

    Informations forums :
    Inscription : Juillet 2003
    Messages : 147
    Par défaut
    Voilà une classe que j'ai fait.

    En espérant que ça t'aide :
    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
     
    Imports System
    Imports System.IO
    Imports System.Xml.Serialization
    Imports System.Collections.Generic
    Imports System.Security.Cryptography
    Imports System.Text
     
    Public Class XmlManager
        Private Const myKey As String = "Password"
     
        Public Shared Sub ObjectToXml(Of T)(ByVal objGen As T, ByVal FileName As String)
            Dim fStream As FileStream = File.Open(FileName, FileMode.OpenOrCreate)
     
            Dim DES As New DESCryptoServiceProvider()
            DES.Key = ASCIIEncoding.ASCII.GetBytes(myKey)
            DES.IV = ASCIIEncoding.ASCII.GetBytes(myKey)
     
            Dim cStream As New CryptoStream(fStream, _
                                           DES.CreateEncryptor(), _
                                           CryptoStreamMode.Write)
     
            Dim objStreamWriter As New StreamWriter(cStream)
            Dim x As New XmlSerializer(objGen.GetType)
            x.Serialize(objStreamWriter, objGen)
     
            objStreamWriter.Close()
            cStream.Close()
            fStream.Close()
        End Sub
     
        Public Shared Function XmlToObject(Of T)(ByVal FileName As String, ByVal oType As Type) As T
            Dim fStream As FileStream = File.OpenRead(FileName)
     
            Dim DES As New DESCryptoServiceProvider()
            DES.Key = ASCIIEncoding.ASCII.GetBytes(myKey)
            DES.IV = ASCIIEncoding.ASCII.GetBytes(myKey)
     
            Dim cStream As New CryptoStream(fStream, _
                                           DES.CreateDecryptor(), _
                                           CryptoStreamMode.Read)
     
            Dim objGen As T
            objGen = Activator.CreateInstance(oType)
            Dim x As New XmlSerializer(oType)
            objGen = x.Deserialize(cStream)
            cStream.Close()
            fStream.Close()
            Return objGen
        End Function
    End Class
    Et je l'appelle comme ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    Dim objConfig As New oConfig
    objConfig = XmlManager.XmlToObject(Of oConfig)("data\config.xml", GetType(oConfig))

  5. #5
    Membre averti
    Inscrit en
    Décembre 2008
    Messages
    67
    Détails du profil
    Informations forums :
    Inscription : Décembre 2008
    Messages : 67
    Par défaut
    Merci de votre réponse . Cependant j'ai une erreur :
    Type 'oConfig' non défini.
    Ppour ce qui est de l’appeller , je l'ai mis juste avant :
    - FluxDeFichier.Close()

    Merci de votre aide .

  6. #6
    Membre chevronné Avatar de Jerede
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mai 2010
    Messages
    271
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Mai 2010
    Messages : 271
    Par défaut
    Normal dans ton cas, c'est
    List(Of Info)

Discussions similaires

  1. Réponses: 8
    Dernier message: 12/02/2013, 01h08
  2. Réponses: 4
    Dernier message: 30/06/2011, 20h42
  3. Implémentation des fonctions mathématiques
    Par mat.M dans le forum Mathématiques
    Réponses: 9
    Dernier message: 17/06/2002, 16h19
  4. fonction printf
    Par ydeleage dans le forum C
    Réponses: 7
    Dernier message: 30/05/2002, 11h24
  5. FOnction api specifiant la position de la souris
    Par florent dans le forum C++Builder
    Réponses: 4
    Dernier message: 15/05/2002, 20h07

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