■ DESCryptoServiceProvider 클래스 : DES 암호화 하기 예제

----------------------------------------------------------------------------------------------------

using System;

 

string plain = "안녕하세요?";

 

string encrypted = DESEncrypt(plain, "01234567", new byte[] { 38, 55, 206, 48, 28, 64, 20, 16 });

 

Console.WriteLine(plain    );

Console.WriteLine(encrypted);

----------------------------------------------------------------------------------------------------

 

■ DESCryptoServiceProvider 클래스 : DES 암호화 하기

----------------------------------------------------------------------------------------------------

using System;

using System.IO;

using System.Security.Cryptography;

using System.Text;

 

#region DES 암호화 하기 - DESEncrypt(plain, key, initialValueByteArray)

 

/// <summary>

/// DES 암호화 하기

/// </summary>

/// <param name="plain">평문 문자열</param>

/// <param name="key">키 문자열</param>

/// <param name="initialValueByteArray">초기값 바이트 배열</param>

/// <returns>암호화 문자열</returns>

public string DESEncrypt(string plain, string key, byte[] initialValueByteArray)

{

    try

    {

        byte[] keyByteArray = Encoding.UTF8.GetBytes(key);

 

        DESCryptoServiceProvider desCryptoServiceProvider = new DESCryptoServiceProvider();

 

        Byte[] plainByteAray = Encoding.UTF8.GetBytes(plain);

 

        MemoryStream memoryStream = new MemoryStream();

 

        CryptoStream cryptoStream = new CryptoStream(memoryStream, desCryptoServiceProvider.CreateEncryptor(keyByteArray, initialValueByteArray),CryptoStreamMode.Write);

 

        cryptoStream.Write(plainByteAray, 0, plainByteAray.Length);

 

        cryptoStream.FlushFinalBlock();

 

        return Convert.ToBase64String(memoryStream.ToArray());

    }

    catch

    {

        return string.Empty;

    }

}

 

#endregion

----------------------------------------------------------------------------------------------------

※ DES 알고리즘은 64비트 키를 사용하기 때문에 키 문자열은 8자리, IV 바이트 배열은 8바이트로 설정한다.

Posted by 사용자 icodebroker
TAG