반응형
ex>>
// 암호화 키(8byte)
static byte[] desKey = ASCIIEncoding.ASCII.GetBytes("tech0001");
Des des = new Des(desKey);
.......
Des Class(암호화, 복호화)
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Security.Cryptography;
using System.IO;
/// <summary>
/// Summary description for Des
/// </summary>
public class Des
{
byte[] key = null;
protected Des()
{
}
public Des(byte[] desKey)
{
this.key = desKey;
}
public string Encrypt(string plain_text)
{
if (string.IsNullOrEmpty(plain_text))
{
throw new ArgumentException("The string which needs to be encrypted can not be null.");
}
if (key.Length != 8)
{
throw (new Exception("Invalid key. Key length must be 8 byte."));
}
DESCryptoServiceProvider cryptoProvider = new DESCryptoServiceProvider();
MemoryStream memoryStream = new MemoryStream();
CryptoStream cryptoStream = new CryptoStream(memoryStream,
cryptoProvider.CreateEncryptor(key, key), CryptoStreamMode.Write);
StreamWriter writer = new StreamWriter(cryptoStream);
writer.Write(plain_text);
writer.Flush();
cryptoStream.FlushFinalBlock();
writer.Flush();
string cypher_text = Convert.ToBase64String(memoryStream.GetBuffer(), 0, (int)memoryStream.Length);
return cypher_text;
}
public string Decrypt(string cypher_text)
{
if (String.IsNullOrEmpty(cypher_text))
{
throw new ArgumentNullException
("The string which needs to be decrypted can not be null.");
}
if (key.Length != 8)
{
throw (new Exception("Invalid key. Key length must be 8 byte."));
}
DESCryptoServiceProvider cryptoProvider = new DESCryptoServiceProvider();
MemoryStream memoryStream = new MemoryStream
(Convert.FromBase64String(cypher_text));
CryptoStream cryptoStream = new CryptoStream(memoryStream,
cryptoProvider.CreateDecryptor(key, key), CryptoStreamMode.Read);
StreamReader reader = new StreamReader(cryptoStream);
string plain_text = reader.ReadToEnd();
return plain_text;
}
}
반응형
'Programming' 카테고리의 다른 글
auto_increment 없이 시퀀스만들기(자동 값 증가, 감소하기) (0) | 2010.09.08 |
---|---|
Sqlite DB + java 연동 (0) | 2010.08.24 |
각종 DB JDBC 연결 (0) | 2010.08.17 |
인덱서 (0) | 2010.08.06 |