728x90
300x250

[C#.NET] AES를 통한 파일 암호화 구현 예제

 

AES를 통한 파일을 암호화하는 방법에 관해 논해보겠습니다.

C#을 통해 파일을 암호화하는 방법입니다.

 

 

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Security.Cryptography;

using System.Security; 

using System.IO;

namespace ConsoleApplication1
{
    class Program
    {
        // Rfc2898DeriveBytes constants:
        public readonly byte[] salt = new byte[] { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 };

      // Must be at least eight bytes.  MAKE THIS SALTIER!
      public const int iterations = 1042; // Recommendation is >= 1000.


        public static void Main(string[] args)
        {

 

        }

 

복호화(Encrypt)

 

public static void EncryptFile(string inputFile, string outputFile)
{

     try
     {
         string password = @"myKey123"; // Your Key Here
         UnicodeEncoding UE = new UnicodeEncoding();
         byte[] key = UE.GetBytes(password);

         string cryptFile = outputFile;
         FileStream fsCrypt = new FileStream(cryptFile, FileMode.Create);

         RijndaelManaged RMCrypto = new RijndaelManaged();

         CryptoStream cs = new CryptoStream(fsCrypt,
         RMCrypto.CreateEncryptor(key, key),
         CryptoStreamMode.Write);

         FileStream fsIn = new FileStream(inputFile, FileMode.Open);

         int data;
         while ((data = fsIn.ReadByte()) != -1)
              cs.WriteByte((byte)data);


              fsIn.Close();
              cs.Close();
              fsCrypt.Close();
        }
     catch
     {

     }
}

 

부호화(Decrypt)

 

/// Decrypts a file using Rijndael algorithm.
///</summary>
///<param name="inputFile"></param>
///<param name="outputFile"></param>
public static void DecryptFile(string inputFile, string outputFile)
{

    {
        string password = @"myKey123"; // Your Key Here

        UnicodeEncoding UE = new UnicodeEncoding();
        byte[] key = UE.GetBytes(password);

        FileStream fsCrypt = new FileStream(inputFile, FileMode.Open);

        RijndaelManaged RMCrypto = new RijndaelManaged();

        CryptoStream cs = new CryptoStream(fsCrypt,
        RMCrypto.CreateDecryptor(key, key),
        CryptoStreamMode.Read);

        FileStream fsOut = new FileStream(outputFile, FileMode.Create);

    

        int data;
        while ((data = cs.ReadByte()) != -1)
             fsOut.WriteByte((byte)data);

             fsOut.Close();
             cs.Close();
             fsCrypt.Close();

        }
}

반응형

+ Recent posts