Jump to content
Xtreme .Net Talk

Recommended Posts

Posted (edited)

i) you need to decide what crypto system do you need ( RSA,DES , TripleDes ...) , some of this are asymmetric crypto systems and other are symetric.

 

ii) asymmetric crypto systems have to different keys ( public and private), public key will be used for crypt some txt ( document , picture ....), and private key is used for decrypt, while symetric crypto systems have one key for both directions

 

iii) framework includes most of these systems ( System.Security.Cryptography ), so you dont need to worry about very large prime numbers which is base of every crypo system , implementation of oprerations for these numbers ( i hated that part :) ) , and other stuff like that!

 

iv) RSA example

 


using System;
using System.Security.Cryptography;
using System.Text;

class RSACSPSample
{

   static void Main()
   {
       try
       {
           //Create a UnicodeEncoder to convert between byte array and string.
           UnicodeEncoding ByteConverter = new UnicodeEncoding();

           //Create byte arrays to hold original, encrypted, and decrypted data.
           byte[] dataToEncrypt = ByteConverter.GetBytes("Data to Encrypt");
           byte[] encryptedData;
           byte[] decryptedData;
           
           //Create a new instance of RSACryptoServiceProvider to generate
           //public and private key data.
           RSACryptoServiceProvider RSA = new RSACryptoServiceProvider();

           //Pass the data to ENCRYPT, the public key information 
           //(using RSACryptoServiceProvider.ExportParameters(false),
           //and a boolean flag specifying no OAEP padding.
           encryptedData = RSAEncrypt(dataToEncrypt,RSA.ExportParameters(false), false);

           //Pass the data to DECRYPT, the private key information 
           //(using RSACryptoServiceProvider.ExportParameters(true),
           //and a boolean flag specifying no OAEP padding.
           decryptedData = RSADecrypt(encryptedData,RSA.ExportParameters(true), false);

           //Display the decrypted plaintext to the console. 
           Console.WriteLine("Decrypted plaintext: {0}", ByteConverter.GetString(decryptedData));
       }
       catch(ArgumentNullException)
       {
           //Catch this exception in case the encryption did
           //not succeed.
           Console.WriteLine("Encryption failed.");

       }
   }

   static public byte[] RSAEncrypt(byte[] DataToEncrypt, RSAParameters RSAKeyInfo, bool DoOAEPPadding)
   {
       try
       {    
           //Create a new instance of RSACryptoServiceProvider.
           RSACryptoServiceProvider RSA = new RSACryptoServiceProvider();

           //Import the RSA Key information. This only needs
           //toinclude the public key information.
           RSA.ImportParameters(RSAKeyInfo);

           //Encrypt the passed byte array and specify OAEP padding.  
           //OAEP padding is only available on Microsoft Windows XP or
           //later.  
           return RSA.Encrypt(DataToEncrypt, DoOAEPPadding);
       }
       //Catch and display a CryptographicException  
       //to the console.
       catch(CryptographicException e)
       {
           Console.WriteLine(e.Message);

           return null;
       }

   }

   static public byte[] RSADecrypt(byte[] DataToDecrypt, RSAParameters RSAKeyInfo,bool DoOAEPPadding)
   {
       try
       {
           //Create a new instance of RSACryptoServiceProvider.
           RSACryptoServiceProvider RSA = new RSACryptoServiceProvider();

           //Import the RSA Key information. This needs
           //to include the private key information.
           RSA.ImportParameters(RSAKeyInfo);

           //Decrypt the passed byte array and specify OAEP padding.  
           //OAEP padding is only available on Microsoft Windows XP or
           //later.  
           return RSA.Decrypt(DataToDecrypt, DoOAEPPadding);
       }
       //Catch and display a CryptographicException  
       //to the console.
       catch(CryptographicException e)
       {
           Console.WriteLine(e.ToString());

           return null;
       }

   }
}



 

this example outputs result to Conslole

 

see link for more info

http://msdn.microsoft.com/library/default.asp?url=/library/en-us/cpref/html/frlrfsystemsecuritycryptographyrsacryptoserviceproviderclasstopic.asp

 

:D

Edited by sizer
Some people are wise and some are other-wise.
Posted

all i want to do is just use a windows form to open a file(with the OpenFileDialog) and encrypt that file

and then use the OpenFileDialog to select a encrypted file and decrypt it and display the stuff in a text box.

Page Edit 2.0 Alpha 2 OUT NOW!

- Download Now -

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...