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 :

Crypter mot de passe en AES


Sujet :

C++

  1. #1
    Membre confirm�
    Profil pro
    Inscrit en
    F�vrier 2010
    Messages
    84
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : F�vrier 2010
    Messages : 84
    Par d�faut Crypter mot de passe en AES
    Bonjour,

    Est-ce que quelqu'un connaitrait-il un tuto / exemple pour crypter une chaine de caract�res en AES avec la class AESCryptoServiceProvider ?

    Le but est de crypter un mot passe dans un programme c++.

    Merci !

  2. #2
    Expert confirm�
    Homme Profil pro
    D�veloppeur informatique
    Inscrit en
    F�vrier 2005
    Messages
    5 505
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 53
    Localisation : France, Val de Marne (�le de France)

    Informations professionnelles :
    Activit� : D�veloppeur informatique
    Secteur : Conseil

    Informations forums :
    Inscription : F�vrier 2005
    Messages : 5 505
    Par d�faut
    La doc suffit pas ? Il y a pourtant un exemple dedans.

  3. #3
    Membre confirm�
    Profil pro
    Inscrit en
    F�vrier 2010
    Messages
    84
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : F�vrier 2010
    Messages : 84
    Par d�faut
    En me basant sur cette doc, j'ai essay� de reproduire le code en C++ mais ca ne fonctionne pas :

    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
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
     
    // TestCrypto.cpp*: définit le point d'entrée pour l'application console.
    //
     
    #include "stdafx.h"
     
    using namespace System;
    using namespace System::Security::Cryptography;
    using namespace System::Text;
    using namespace System::IO;
     
     
    array<Byte>^ EncryptStringToBytes_Aes(String ^ plainText, array<Byte>^ Key,array<Byte>^ IV) 
    {
     
    	array<Byte>^ encrypted;
     
        // Create an AesCryptoServiceProvider object with the specified key and IV. 
    	AesCryptoServiceProvider ^ aesAlg = gcnew AesCryptoServiceProvider; 
    	aesAlg->Key = Key;
    	aesAlg->IV = IV;
     
     
    	// Create a decrytor to perform the stream transform.
    	ICryptoTransform ^ encryptor = aesAlg->CreateEncryptor(aesAlg->Key, aesAlg->IV);
     
    	// Create the streams used for encryption. 
        MemoryStream ^ msEncrypt = gcnew MemoryStream;
    	CryptoStream ^ csEncrypt = gcnew CryptoStream(msEncrypt, encryptor, CryptoStreamMode::Write);
    	StreamWriter ^ swEncrypt = gcnew StreamWriter(csEncrypt);
     
    	swEncrypt->Write(plainText);
     
    	encrypted = msEncrypt->ToArray();
     
    	return encrypted;
    }
     
     
    String ^ DecryptStringFromBytes_Aes(array<Byte>^ cipherText, array<Byte>^ Key, array<Byte>^ IV) 
    {
     
    	String ^ plaintext = "";
     
        // Create an AesCryptoServiceProvider object with the specified key and IV. 
    	AesCryptoServiceProvider ^ aesAlg = gcnew AesCryptoServiceProvider; 
    	aesAlg->Key = Key;
    	aesAlg->IV = IV;
     
    	// Create a decrytor to perform the stream transform.
    	ICryptoTransform ^ decryptor = aesAlg->CreateDecryptor(aesAlg->Key, aesAlg->IV);
     
    	// Create the streams used for encryption. 
        MemoryStream ^ msDecrypt = gcnew MemoryStream(cipherText);
    	CryptoStream ^ csDecrypt = gcnew CryptoStream(msDecrypt, decryptor, CryptoStreamMode::Read);
    	StreamReader ^ srDecrypt = gcnew StreamReader(csDecrypt); 
     
    	plaintext = srDecrypt->ReadToEnd();
     
    	return plaintext;
     
    }
     
     
     
     
     
     
     
     
    int _tmain(int argc, _TCHAR* argv[])
    {
     
     
     
    String ^ original = "Here is some data to encrypt!";
     
    AesCryptoServiceProvider ^ myAes = gcnew AesCryptoServiceProvider;
     
    array<Byte>^ encrypted = EncryptStringToBytes_Aes( original, myAes->Key, myAes->IV) ;
    String ^ roundtrip = DecryptStringFromBytes_Aes(encrypted, myAes->Key, myAes->IV);
     
     
    Console::WriteLine("Original:   {0}\n", original);
    Console::WriteLine("encrypted: {0}\n", encrypted);
    Console::WriteLine("Decrypted: {0}\n", roundtrip );
     
    return 0;
     
    }

  4. #4
    Expert confirm�
    Homme Profil pro
    D�veloppeur informatique
    Inscrit en
    F�vrier 2005
    Messages
    5 505
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 53
    Localisation : France, Val de Marne (�le de France)

    Informations professionnelles :
    Activit� : D�veloppeur informatique
    Secteur : Conseil

    Informations forums :
    Inscription : F�vrier 2005
    Messages : 5 505
    Par d�faut
    j'ai essay� de reproduire le code en C++ mais ca ne fonctionne pas :
    Message d'erreur SVP.

  5. #5
    Membre confirm�
    Profil pro
    Inscrit en
    F�vrier 2010
    Messages
    84
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : F�vrier 2010
    Messages : 84
    Par d�faut
    Pas d'erreur mais le message d�crypt� est vide
    Nom : Capture.JPG
Affichages : 257
Taille : 15,8 Ko

  6. #6
    Expert �minent
    Avatar de M�dinoc
    Homme Profil pro
    D�veloppeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 397
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 41
    Localisation : France

    Informations professionnelles :
    Activit� : D�veloppeur informatique
    Secteur : High Tech - �diteur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 397
    Par d�faut
    En effet, c'est bizarre. Je n'ai pas l'habitude d'utiliser les CryptoStream, en g�n�ral je fais juste un TransformFinalBlock() sur un tableau d'octets...

    Peux-tu remplacer la ligne Console::WriteLine("encrypted: {0}\n", encrypted); par:
    Code C++/CLI : S�lectionner tout - Visualiser dans une fen�tre � part
    Console::WriteLine("encrypted: {0} ({1} bytes)\n", encrypted, (encrypted!=nullptr ? encrypted->Length : 0));

    PS: Appeler ce langage "C++", c'est comme appeler le langage C++ "C". J'aimerais tant que Microsoft arr�te de faire �a et de semer la confusion dans les esprits...
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parl� avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

  7. #7
    Membre confirm�
    Profil pro
    Inscrit en
    F�vrier 2010
    Messages
    84
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : F�vrier 2010
    Messages : 84
    Par d�faut
    Merci !
    J'ai finalement trouv� une solution alternative : https://msdn.microsoft.com/fr-fr/lib...v=VS.110).aspx

+ R�pondre � la discussion
Cette discussion est r�solue.

Discussions similaires

  1. Crypter mots de passe avec AES Encrypt
    Par maxlpn dans le forum Administration
    R�ponses: 6
    Dernier message: 25/07/2011, 11h30
  2. Crypter mot de passe pour export
    Par Z3phur dans le forum Administration
    R�ponses: 14
    Dernier message: 29/10/2008, 22h17
  3. crypter mot de passe asp.net et c#
    Par fido1 dans le forum ASP.NET
    R�ponses: 1
    Dernier message: 14/09/2008, 15h38
  4. Crypter mot de passe, transmission r�seau
    Par contremaitre dans le forum R�seau
    R�ponses: 11
    Dernier message: 28/06/2008, 23h42
  5. [Crypter mot de passe ?] Crypter les mdp user en base ?
    Par Casp dans le forum G�n�ral Conception Web
    R�ponses: 9
    Dernier message: 28/02/2006, 10h56

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