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

C# Discussion :

Vecteur d'Initialisation valeur à donner


Sujet :

C#

  1. #1
    Membre du Club
    Inscrit en
    Septembre 2008
    Messages
    230
    Détails du profil
    Informations forums :
    Inscription : Septembre 2008
    Messages : 230
    Points : 52
    Points
    52
    Par défaut Vecteur d'Initialisation valeur à donner
    Bonjour ,

    Je cherche à crypter des données j'utilise donc la procedure suivante :

    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
     
       private static string EncryptString(string clearText, string strKey, string strIv)
            {
     
                // Place le texte à chiffrer dans un tableau d'octets
                byte[] plainText = Encoding.UTF8.GetBytes(clearText);
     
                // Place la clé de chiffrement dans un tableau d'octets
                byte[] key = Encoding.UTF8.GetBytes(strKey);
     
                // Place le vecteur d'initialisation dans un tableau d'octets
                byte[] iv = Encoding.UTF8.GetBytes(strIv);
     
     
                RijndaelManaged rijndael = new RijndaelManaged();
     
                // Définit le mode utilisé
                rijndael.Mode = CipherMode.CBC;
     
                // Crée le chiffreur AES - Rijndael
                ICryptoTransform aesEncryptor = rijndael.CreateEncryptor(key, iv);
     
                System.IO.MemoryStream ms = new System.IO.MemoryStream();
     
                // Ecris les données chiffrées dans le MemoryStream
                CryptoStream cs = new CryptoStream(ms, aesEncryptor, CryptoStreamMode.Write);
                cs.Write(plainText, 0, plainText.Length);
                cs.FlushFinalBlock();
     
     
                // Place les données chiffrées dans un tableau d'octet
                byte[] CipherBytes = ms.ToArray();
     
     
                ms.Close();
                cs.Close();
     
                // Place les données chiffrées dans une chaine encodée en Base64
                return Convert.ToBase64String(CipherBytes);
     
     
            }
    le probleme que j'ai c'est quand j'utilise cette fonction je passe quoi en parametre pour strKey et strIv en autre qu'elle valeur donné pour la clé de chiffrement et le Vecteur d'Initialisation . J'ai beau cherche des exemple je trouve rien .

    Merci .

  2. #2
    Expert confirmé
    Inscrit en
    Avril 2008
    Messages
    2 564
    Détails du profil
    Informations personnelles :
    Âge : 64

    Informations forums :
    Inscription : Avril 2008
    Messages : 2 564
    Points : 4 441
    Points
    4 441
    Par défaut encryption
    bonjour
    parrametres strkey,iv.
    methode pour creer strkey et iv
    il faut definir un fournisseur d'encryption (provider=algo d'encryption)pour creer les parametres:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    'utiliser par exemple une chaine password pour generer les 2 parametres.
    'importer system.io.text
    'creer les tableaux standard de byte du provider
    Dim DES As New DESCryptoServiceProvider()
    DES.Key = ASCIIEncoding.ASCII.GetBytes(sKey)
    DES.IV = ASCIIEncoding.ASCII.GetBytes(sKey)
     
    'il ne faut perdre le password parce que les memes 2 cles sont utilises pour decrypter....
    bon code.....

  3. #3
    Membre du Club
    Inscrit en
    Septembre 2008
    Messages
    230
    Détails du profil
    Informations forums :
    Inscription : Septembre 2008
    Messages : 230
    Points : 52
    Points
    52
    Par défaut
    oui mais je sais toujours pas qu'elle valeur j'assigne strKey et strIv . Quand j'utilise ma fontion EncryptString(string clearText, string strKey, string strIv)
    je fais EncryptString("test" , ? , ?)
    mais je ne sais pas ce qu'il faut mettre ensuite

  4. #4
    Modérateur
    Avatar de toopac
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2009
    Messages
    940
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2009
    Messages : 940
    Points : 2 913
    Points
    2 913
    Par défaut
    Je suppose que tu a regardé le tutoriel de Ronald Vasseur (http://webman.developpez.com/article.../aes-rijndael/).

    strKey va te permettre de créer ta clé et strIv le vecteur d'initialisation.

    Tu peux mettre ce que tu veux dedans, mais si tu veux décoder ton message après, il faudra que tu utilises les deux mêmes chaînes de caractère.


    Sinon, un solution donnée dans le paragraphe 4 du tutoriel te permet de générer la clé et le vecteur d'initialisation à partir d'une seule chaîne de caractère, qui sera ta donc ton mot de passe ("PassPhrase").

    le code : (en c# vu qu'on est dans le forum c# )
    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
    private static string EncryptString(string clearText, string password)
    {
     
      // Place le texte à chiffrer dans un tableau d'octets
      byte[] plainText = Encoding.UTF8.GetBytes(clearText);
     
      //Génération de la clé et du veteur d'initialisation à partir du mot de passe
      Rfc2898DeriveBytes rfcDb = new Rfc2898DeriveBytes(password, System.Text.Encoding.UTF8.GetBytes(password));
      byte[] key = rfcDb.GetBytes(16);
      byte[] iv = rfcDb.GetBytes(16);
     
     
      RijndaelManaged rijndael = new RijndaelManaged();
     
      // Définit le mode utilisé
      rijndael.Mode = CipherMode.CBC;
     
      // Crée le chiffreur AES - Rijndael
      ICryptoTransform aesEncryptor = rijndael.CreateEncryptor(key, iv);
     
      System.IO.MemoryStream ms = new System.IO.MemoryStream();
     
      // Ecris les données chiffrées dans le MemoryStream
      CryptoStream cs = new CryptoStream(ms, aesEncryptor, CryptoStreamMode.Write);
      cs.Write(plainText, 0, plainText.Length);
      cs.FlushFinalBlock();
     
     
      // Place les données chiffrées dans un tableau d'octet
      byte[] CipherBytes = ms.ToArray();
     
     
      ms.Close();
      cs.Close();
     
      // Place les données chiffrées dans une chaine encodée en Base64
      return Convert.ToBase64String(CipherBytes);
    }

Discussions similaires

  1. [mcrypt] Vecteur d'initialisation
    Par sabotage dans le forum Langage
    Réponses: 3
    Dernier message: 31/03/2009, 10h30
  2. [PEAR][HTML_QuickForm] Formulaire et initialisation valeur
    Par Katachana dans le forum Bibliothèques et frameworks
    Réponses: 1
    Dernier message: 12/02/2008, 11h10
  3. Réponses: 2
    Dernier message: 06/04/2007, 11h30
  4. Initialiser valeur d'un tableau
    Par jcaspar dans le forum Collection et Stream
    Réponses: 6
    Dernier message: 19/02/2007, 19h18
  5. [struts] initialiser valeur
    Par knotty dans le forum Struts 1
    Réponses: 3
    Dernier message: 10/03/2004, 15h29

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