begin process at 2012 05 28 23:58:41
  Trouver un code source :
 
dans
 
Accueil > Forum > 

C++ & C++ .NET

 > 

Algorithme

 > 

Compression, Split & Cryptage

 > 

cryptage de fichiers avec l'algorithme RSA


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

cryptage de fichiers avec l'algorithme RSA

mercredi 23 mai 2007 à 15:16:07 | cryptage de fichiers avec l'algorithme RSA

ryoussef19

je veux faire une petite application qui crypte et decrypte des fichiers avec l'algo RSA
pour l'instant lorsque je crypte il me genere un fichier vide
voici mon code :

						
								using
								
								
								namespace
								 System;
						
				
						
								using
								
								
								namespace
								 System::IO;
						
				
						
								using
								
								
								namespace
								 System::Security::Cryptography;
						
				
						
								 
						
				
						
								void
								 genererCle(String ^fichierPublicPrivee, String ^fichierClePublic)
						
				
						
								{
						
				
						
								
										        
								
								if
								 (!(File::Exists(fichierPublicPrivee) || File::Exists(fichierClePublic)) )
						
				
						
								
										        {
						
				
						
								
										               RSACryptoServiceProvider ^rsaProvider = gcnew RSACryptoServiceProvider(
								1024
								);
						
				
						
								
										               String ^clesPublicEtPrivee = rsaProvider->ToXmlString(
								true
								);
						
				
						
								
										               String ^clePublic = rsaProvider->ToXmlString(
								false
								);
						
				
						
								
										               StreamWriter ^sw = gcnew StreamWriter(fichierPublicPrivee);
						
				
						
								
										               sw->Write(clesPublicEtPrivee);
						
				
						
								
										               sw->Close();
						
				
						
								
										               sw = gcnew StreamWriter(fichierClePublic);
						
				
						
								
										               sw->Write(clePublic);
						
				
						
								
										               sw->Close();
						
				
						
								
										        }
						
				
						
								
										        
								
								else
								
										
										
								
						
				
						
								
										               Console::WriteLine(
								"fichier de clés existant"
								);
						
				
						
								}
						
				
						
								 
						
				
						
								array<unsigned char> ^ encrypt(String ^fichierClePublic, array<unsigned char> ^data)
						
				
						
								{
						
				
						
								
										        
								
								StreamReader ^sr = gcnew StreamReader(fichierClePublic);
						
				
						
								
										        String ^cle = sr->ReadLine();
						
				
						
								
										        sr->Close();
						
				
						
								
										        RSACryptoServiceProvider ^rsaProvider = gcnew RSACryptoServiceProvider(
								1024
								);
						
				
						
								
										        rsaProvider->FromXmlString(cle);
						
				
						
								
										        
								
								return
								 rsaProvider->Encrypt(data, 
								false
								);
						
				
						
								}
						
				
						
								 
						
				
						
								array<unsigned char> ^ decrypt(String ^fichierPublicPrivee, array<unsigned char> ^data)
						
				
						
								{
						
				
						
								
										        StreamReader ^sr = gcnew StreamReader(fichierPublicPrivee);
						
				
						
								
										        String ^cle = sr->ReadLine();
						
				
						
								
										        sr->Close();
						
				
						
								
										        RSACryptoServiceProvider ^rsaProvider = gcnew RSACryptoServiceProvider(
								1024
								);
						
				
						
								
										        rsaProvider->FromXmlString(cle);
						
				
						
								
										        
								
								return
								 rsaProvider->Decrypt(data, 
								false
								);
						
				
						
								}
						
				
						
								 
						
				
						
								int
								 main(array<System::String ^> ^args)
						
				
						
								{
						
				
						
								
										    genererCle(
								"pp"
								, 
								"p"
								);
						
				

            FileStream ^fs = gcnew FileStream("c:\\test.txt", FileMode::Open);

      BinaryReader ^br = gcnew BinaryReader(fs);

      FileStream ^fsw = gcnew FileStream("c:\\test1.txt", FileMode::CreateNew);

      BinaryWriter ^bw = gcnew BinaryWriter(fsw);

 

 

      try

      {

            array<unsignedchar> ^ encrypted = encrypt("c:\\testpke.txt", br->ReadBytes((int)fs->Length));

           

           

            bw->Write(encrypt("pp", br->ReadBytes((int)fs->Length)));

 

            MessageBox::Show(encrypted->ToString());

      }

      catch (Exception^)

      {

           

      }

      finally

      {

            br->Close();

            fs->Close();

            bw->Close();

            fsw->Close();
       }
return 0;
}

mercredi 23 mai 2007 à 15:23:06 | Re : cryptage de fichiers avec l'algorithme RSA

ryoussef19

voici plutot le code :

 

 

using namespace System;

using namespace System::IO;

using namespace System::Security::Cryptography;

 

void genererCle(String ^fichierPublicPrivee, String ^fichierClePublic)

{

      if (!(File::Exists(fichierPublicPrivee) || File::Exists(fichierClePublic)) )

      {

            RSACryptoServiceProvider ^rsaProvider = gcnew RSACryptoServiceProvider(1024);

            String ^clesPublicEtPrivee = rsaProvider->ToXmlString(true);

            String ^clePublic = rsaProvider->ToXmlString(false);

            StreamWriter ^sw = gcnew StreamWriter(fichierPublicPrivee);

            sw->Write(clesPublicEtPrivee);

            sw->Close();

            sw = gcnew StreamWriter(fichierClePublic);

            sw->Write(clePublic);

            sw->Close();

      }

      else

            Console::WriteLine("fichier de clés existant");

}

 

array<unsigned char> ^ encrypt(String ^fichierClePublic, array<unsigned char> ^data)

{

      StreamReader ^sr = gcnew StreamReader(fichierClePublic);

      String ^cle = sr->ReadLine();

      sr->Close();

      RSACryptoServiceProvider ^rsaProvider = gcnew RSACryptoServiceProvider(1024);

      rsaProvider->FromXmlString(cle);

      return rsaProvider->Encrypt(data, false);

}

 

array<unsigned char> ^ decrypt(String ^fichierPublicPrivee, array<unsigned char> ^data)

{

      StreamReader ^sr = gcnew StreamReader(fichierPublicPrivee);

      String ^cle = sr->ReadLine();

      sr->Close();

      RSACryptoServiceProvider ^rsaProvider = gcnew RSACryptoServiceProvider(1024);

      rsaProvider->FromXmlString(cle);

      return rsaProvider->Decrypt(data, false);

}

 

int main(array<System::String ^> ^args)

{

    genererCle("pp", "p");

FileStream ^fs = gcnew FileStream("c:\\test.txt", FileMode::Open);

 

      BinaryReader ^br = gcnew BinaryReader(fs);

 

      FileStream ^fsw = gcnew FileStream("c:\\test1.txt", FileMode::CreateNew);

 

      BinaryWriter ^bw = gcnew BinaryWriter(fsw);

 

 

 

 

 

      try

 

      {

 

            array<unsignedchar> ^ encrypted = encrypt("c:\\testpke.txt", br->ReadBytes((int)fs->Length));

 

           

 

           

 

            bw->Write(encrypt("pp", br->ReadBytes((int)fs->Length)));

 

   

 

            MessageBox::Show(encrypted->ToString());

 

      }

 

      catch (Exception^)

 

      {

 

           

 

      }

 

      finally

 

      {

 

            br->Close();

 

            fs->Close();

 

            bw->Close();

 

            fsw->Close();

       }

 

 

 

 

    return 0;

}


 


Cette discussion est classée dans : string, close, gcnew, rsaprovider, rsacryptoserviceprovider


Répondre à ce message

Sujets en rapport avec ce message

petit pb de type string [ par bidules ] D'apres ce que g pu apprendre lorsque l'on veut declarer une variable de type string il faut faire :#include string variable;c bien ca? car qd je fais Appel d'une Dll en C avec ASP [ par carlos ] Salut,j'ai une dll en C de +/- 15.000 lignes donc trop long à réecrire. Je voudrais pouvoir l'appeler à partir d'une Asp...en plus, pour etre portable Mysql [ par Vinsou ] J'essaie de me connecter à mysql. Donc j'inclus "mysql.h" et ensuite j'ai:ligne 90: mysql_close (conn);Et à la compilation:main.cpp:90: undefined refe C++ Standard ? [ par mmuller57 ] Voila, je viens d'aller sur le site de Bjarne Stroustrup et j'y ai pris un exemple de code source en C++ standard :#include#includeusing namespace std Conversion Float to String [ par PierreP ] Bonjour à tous !je suis en train de me prendre la tête pour créer une fonction de conversion d'un réel en une chaine de caractère (problème du débutan Renommer un fichier [ par mindark ] Bonjour, j'essaie tout betement de renommer un fichier a l'aide des api, mais ca ne marche pas !Je veux renommer "kk.txt" en "qq.txt"String ancien="C: Pb Chaîne de caractères [ par mmuller57 ] Bonjour,J'ai créé un petit programme qui convertit les caractères d'une chaîne de caractères par leurs codes ASCII :#include #include #include int con Impression String [ par teamours ] Je voudrais savoir komen on fé pour imprimer le contenue d'une varible CStringUn echaine de caractere koi....Merciiiiiiiii AnsiString et Char [ par JCLK ] J'ai un leger probleme :je recupere une String et j'ai ensuite besoin de la transformer en char *Est-ce possible ?La String contient un path ("C:\...\ longeur d'une string [ par angelique ] Bonjour, je n'arrive pas à retourner la longueur d'une srting :string result_s;result_s = vertex_label(boost::target(*ei, g), g); int longueur = strl


Nos sponsors


Sondage...

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,406 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales