locked
how to encrypt the text of a text file

    Question

  • hello everybody

    i have  a doubt please help me out

    the question is

     i have a application1 in which i will write some data to the text file sample1.txt

    and i have another application by name application2 in which i will be using it the same text which has been wrritten in sample1.txt

    this is working perfectly

    no doubt

    but i want to encrypt the data when i write into the file sample1.txt by using application1

    and i want to decryt the data when i read the sample1.txt by using application2

    the data in the text file will be numerical so please

    so how to do it please help me

    thank you


    • Edited by skp03 Saturday, March 17, 2012 10:04 AM
    Saturday, March 17, 2012 10:02 AM

Answers

  • You can use the AESManaged class. AES is Advanced Encryption Standard algorithm.

    There are code sample to encrypt and decrypt text in the MSDN documentation for the class here: http://msdn.microsoft.com/en-us/library/system.security.cryptography.aesmanaged.aspx


    http://sherifelmetainy.blogspot.com/

    Saturday, March 17, 2012 10:23 AM
  • Saturday, March 17, 2012 11:04 AM
  • Hi skp03,

    Welcome to the MSDN forum!

    Please refer to the following kb to solve the issue:

    How to encrypt and decrypt a file by using Visual C#
    http://support.microsoft.com/kb/307010   

    using System;
    using System.IO;
    using System.Security;
    using System.Security.Cryptography;
    using System.Runtime.InteropServices;
    using System.Text;
    
    namespace CSEncryptDecrypt
    {
       class Class1
       {
          //  Call this function to remove the key from memory after use for security
          [System.Runtime.InteropServices.DllImport("KERNEL32.DLL", EntryPoint="RtlZeroMemory")]
          public static extern bool ZeroMemory(IntPtr Destination, int Length);
    		
          // Function to Generate a 64 bits Key.
          static string GenerateKey() 
          {
             // Create an instance of Symetric Algorithm. Key and IV is generated automatically.
             DESCryptoServiceProvider desCrypto =(DESCryptoServiceProvider)DESCryptoServiceProvider.Create();
    
             // Use the Automatically generated key for Encryption. 
             return ASCIIEncoding.ASCII.GetString(desCrypto.Key);
          }
    
          static void EncryptFile(string sInputFilename,
             string sOutputFilename, 
             string sKey) 
          {
             FileStream fsInput = new FileStream(sInputFilename, 
                FileMode.Open, 
                FileAccess.Read);
    
             FileStream fsEncrypted = new FileStream(sOutputFilename, 
                FileMode.Create, 
                FileAccess.Write);
             DESCryptoServiceProvider DES = new DESCryptoServiceProvider();
             DES.Key = ASCIIEncoding.ASCII.GetBytes(sKey);
             DES.IV = ASCIIEncoding.ASCII.GetBytes(sKey);
             ICryptoTransform desencrypt = DES.CreateEncryptor();
             CryptoStream cryptostream = new CryptoStream(fsEncrypted, 
                desencrypt, 
                CryptoStreamMode.Write); 
    
             byte[] bytearrayinput = new byte[fsInput.Length];
             fsInput.Read(bytearrayinput, 0, bytearrayinput.Length);
             cryptostream.Write(bytearrayinput, 0, bytearrayinput.Length);
             cryptostream.Close();
             fsInput.Close();
             fsEncrypted.Close();
          }
    
          static void DecryptFile(string sInputFilename, 
             string sOutputFilename,
             string sKey)
          {
             DESCryptoServiceProvider DES = new DESCryptoServiceProvider();
             //A 64 bit key and IV is required for this provider.
             //Set secret key For DES algorithm.
             DES.Key = ASCIIEncoding.ASCII.GetBytes(sKey);
             //Set initialization vector.
             DES.IV = ASCIIEncoding.ASCII.GetBytes(sKey);
    
             //Create a file stream to read the encrypted file back.
             FileStream fsread = new FileStream(sInputFilename, 
                FileMode.Open, 
                FileAccess.Read);
             //Create a DES decryptor from the DES instance.
             ICryptoTransform desdecrypt = DES.CreateDecryptor();
             //Create crypto stream set to read and do a 
             //DES decryption transform on incoming bytes.
             CryptoStream cryptostreamDecr = new CryptoStream(fsread, 
                desdecrypt,
                CryptoStreamMode.Read);
             //Print the contents of the decrypted file.
             StreamWriter fsDecrypted = new StreamWriter(sOutputFilename);
             fsDecrypted.Write(new StreamReader(cryptostreamDecr).ReadToEnd());
             fsDecrypted.Flush();
             fsDecrypted.Close();
          } 
    
          static void Main()
          {
             // Must be 64 bits, 8 bytes.
             // Distribute this key to the user who will decrypt this file.
             string sSecretKey;
             
             // Get the Key for the file to Encrypt.
             sSecretKey = GenerateKey();
    
             // For additional security Pin the key.
             GCHandle gch = GCHandle.Alloc( sSecretKey,GCHandleType.Pinned );
             
             // Encrypt the file.        
             EncryptFile(@"C:\MyData.txt", 
                @"C:\Encrypted.txt", 
                sSecretKey);
    
             // Decrypt the file.
             DecryptFile(@"C:\Encrypted.txt", 
                @"C:\Decrypted.txt", 
                sSecretKey);
    
             // Remove the Key from memory. 
             ZeroMemory(gch.AddrOfPinnedObject(), sSecretKey.Length * 2);
             gch.Free();
          }
       }
    }

    Hope it helps.

    Have a nice day.

    yoyo


    Yoyo Jiang[MSFT]
    MSDN Community Support | Feedback to us


    Tuesday, March 20, 2012 3:45 AM

All replies

  • You can use the AESManaged class. AES is Advanced Encryption Standard algorithm.

    There are code sample to encrypt and decrypt text in the MSDN documentation for the class here: http://msdn.microsoft.com/en-us/library/system.security.cryptography.aesmanaged.aspx


    http://sherifelmetainy.blogspot.com/

    Saturday, March 17, 2012 10:23 AM
  • Saturday, March 17, 2012 11:04 AM
  • Hi skp03,

    Welcome to the MSDN forum!

    Please refer to the following kb to solve the issue:

    How to encrypt and decrypt a file by using Visual C#
    http://support.microsoft.com/kb/307010   

    using System;
    using System.IO;
    using System.Security;
    using System.Security.Cryptography;
    using System.Runtime.InteropServices;
    using System.Text;
    
    namespace CSEncryptDecrypt
    {
       class Class1
       {
          //  Call this function to remove the key from memory after use for security
          [System.Runtime.InteropServices.DllImport("KERNEL32.DLL", EntryPoint="RtlZeroMemory")]
          public static extern bool ZeroMemory(IntPtr Destination, int Length);
    		
          // Function to Generate a 64 bits Key.
          static string GenerateKey() 
          {
             // Create an instance of Symetric Algorithm. Key and IV is generated automatically.
             DESCryptoServiceProvider desCrypto =(DESCryptoServiceProvider)DESCryptoServiceProvider.Create();
    
             // Use the Automatically generated key for Encryption. 
             return ASCIIEncoding.ASCII.GetString(desCrypto.Key);
          }
    
          static void EncryptFile(string sInputFilename,
             string sOutputFilename, 
             string sKey) 
          {
             FileStream fsInput = new FileStream(sInputFilename, 
                FileMode.Open, 
                FileAccess.Read);
    
             FileStream fsEncrypted = new FileStream(sOutputFilename, 
                FileMode.Create, 
                FileAccess.Write);
             DESCryptoServiceProvider DES = new DESCryptoServiceProvider();
             DES.Key = ASCIIEncoding.ASCII.GetBytes(sKey);
             DES.IV = ASCIIEncoding.ASCII.GetBytes(sKey);
             ICryptoTransform desencrypt = DES.CreateEncryptor();
             CryptoStream cryptostream = new CryptoStream(fsEncrypted, 
                desencrypt, 
                CryptoStreamMode.Write); 
    
             byte[] bytearrayinput = new byte[fsInput.Length];
             fsInput.Read(bytearrayinput, 0, bytearrayinput.Length);
             cryptostream.Write(bytearrayinput, 0, bytearrayinput.Length);
             cryptostream.Close();
             fsInput.Close();
             fsEncrypted.Close();
          }
    
          static void DecryptFile(string sInputFilename, 
             string sOutputFilename,
             string sKey)
          {
             DESCryptoServiceProvider DES = new DESCryptoServiceProvider();
             //A 64 bit key and IV is required for this provider.
             //Set secret key For DES algorithm.
             DES.Key = ASCIIEncoding.ASCII.GetBytes(sKey);
             //Set initialization vector.
             DES.IV = ASCIIEncoding.ASCII.GetBytes(sKey);
    
             //Create a file stream to read the encrypted file back.
             FileStream fsread = new FileStream(sInputFilename, 
                FileMode.Open, 
                FileAccess.Read);
             //Create a DES decryptor from the DES instance.
             ICryptoTransform desdecrypt = DES.CreateDecryptor();
             //Create crypto stream set to read and do a 
             //DES decryption transform on incoming bytes.
             CryptoStream cryptostreamDecr = new CryptoStream(fsread, 
                desdecrypt,
                CryptoStreamMode.Read);
             //Print the contents of the decrypted file.
             StreamWriter fsDecrypted = new StreamWriter(sOutputFilename);
             fsDecrypted.Write(new StreamReader(cryptostreamDecr).ReadToEnd());
             fsDecrypted.Flush();
             fsDecrypted.Close();
          } 
    
          static void Main()
          {
             // Must be 64 bits, 8 bytes.
             // Distribute this key to the user who will decrypt this file.
             string sSecretKey;
             
             // Get the Key for the file to Encrypt.
             sSecretKey = GenerateKey();
    
             // For additional security Pin the key.
             GCHandle gch = GCHandle.Alloc( sSecretKey,GCHandleType.Pinned );
             
             // Encrypt the file.        
             EncryptFile(@"C:\MyData.txt", 
                @"C:\Encrypted.txt", 
                sSecretKey);
    
             // Decrypt the file.
             DecryptFile(@"C:\Encrypted.txt", 
                @"C:\Decrypted.txt", 
                sSecretKey);
    
             // Remove the Key from memory. 
             ZeroMemory(gch.AddrOfPinnedObject(), sSecretKey.Length * 2);
             gch.Free();
          }
       }
    }

    Hope it helps.

    Have a nice day.

    yoyo


    Yoyo Jiang[MSFT]
    MSDN Community Support | Feedback to us


    Tuesday, March 20, 2012 3:45 AM