C#, 문자열 암호화, 복호화 예제
C# 에서 제공하는 클래스로 간단하게 DES 암호화, 복호화가 가능합니다.
참고로 암호화/복호화에 사용되는 키는 8글자여야 합니다.
public partial class Form1 : Form { //암호화 복호화 키 8글자 (필히 8자리여야 함) WATCrypt m_crypt = new WATCrypt("11111111"); public Form1() { InitializeComponent(); }
private void btnInDES_Click(object sender, EventArgs e) { // 암호화 txbOutput.Text = m_crypt.Encrypt(txbInput.Text); }
private void btnDeDES_Click(object sender, EventArgs e) { // 복호화 txbDeDES.Text = m_crypt.Decrypt(txbOutput.Text); }
} class WATCrypt { byte[] Skey = new byte[8]; public WATCrypt(string strKey) { Skey = ASCIIEncoding.ASCII.GetBytes(strKey); }
public string Encrypt(string p_data) { if (Skey.Length != 8) { throw (new Exception("Invalid key. Key length must be 8 byte.")); }
DESCryptoServiceProvider rc2 = new DESCryptoServiceProvider();
rc2.Key = Skey; rc2.IV = Skey;
MemoryStream ms = new MemoryStream(); CryptoStream cryStream = new CryptoStream(ms, rc2.CreateEncryptor(), CryptoStreamMode.Write); byte[] data = Encoding.UTF8.GetBytes(p_data.ToCharArray());
cryStream.Write(data, 0, data.Length); cryStream.FlushFinalBlock();
return Convert.ToBase64String(ms.ToArray()); }
public string Decrypt(string p_data) { DESCryptoServiceProvider rc2 = new DESCryptoServiceProvider();
rc2.Key = Skey; rc2.IV = Skey;
MemoryStream ms = new MemoryStream(); CryptoStream cryStream = new CryptoStream(ms, rc2.CreateDecryptor(), CryptoStreamMode.Write); byte[] data = Convert.FromBase64String(p_data);
cryStream.Write(data, 0, data.Length); cryStream.FlushFinalBlock();
return Encoding.UTF8.GetString(ms.GetBuffer()); } } |
'스터디 > C#.NET:자료' 카테고리의 다른 글
C#, 타이틀바 잡지 않고 윈도우 폼 이동하기 (0) | 2011.05.17 |
---|---|
C#, 파일 읽어 ListView에 출력 (0) | 2011.05.14 |
프로그램 시작 위치 얻기 (1) | 2011.04.29 |
C#, RichTextBox 에서 그림 삽입(파일명, 리소스) (0) | 2011.03.30 |
C# DataGridView 간단하게 필터 기능 사용하기 (6) | 2011.03.29 |
C#, Queue 사용하기 (0) | 2011.02.23 |
C# 에서 클래스 비교하기 (0) | 2011.01.31 |
정렬, Aligment 의 Enumeration 사용하기 (0) | 2011.01.23 |
Visual Studio 2005, 2008 환경설정 –줄번호, 단축키 설정 (0) | 2011.01.05 |
C#, 사용자 정의 컨트롤 사용하기 (0) | 2011.01.05 |