728x90
반응형
오늘 소개할 코드는 TripleDES라는 암호화/복호화 로직인데요.
각 데이터 블록에 DES라는 데이터 암호화 알고리즘을 세번 적용한 방식이라고 하네요.
이러한 형태를 띄고 있다고 하는데요.
보통 JAVA 코딩에서 많이 사용 되는 거 같아요.
이 알고리즘에 대해서는 자세하게는 파고 들지는 않을게요.
저도 이쪽 전문가는 아니라 ㅎㅎ
좀더 자세하게 알고 싶다면 아래 링크 참고해보세요!
http://wiki.hash.kr/index.php/%ED%8A%B8%EB%A6%AC%ED%94%8C_DES
먼저 암호화 소스 부터 소개할게요!
암호화
public string Encryption(string str, string key)
{
TripleDESCryptoServiceProvider Tripledes = new TripleDESCryptoServiceProvider();
Tripledes.Mode = CipherMode.ECB;
Tripledes.Padding = PaddingMode.PKCS7;
byte[] b_input = Encoding.UTF8.GetBytes(str);
byte[] b_key = Encoding.UTF8.GetBytes(key);
MemoryStream tempStream = new MemoryStream();
CryptoStream encStream = new CryptoStream(tempStream, Tripledes.CreateEncryptor(b_key, b_key), CryptoStreamMode.Write);
encStream.Write(b_input, 0, b_input.Length);
encStream.Close();
return Convert.ToBase64String(tempStream.ToArray());
}
str에는 암호화할 텍스트를 넣어주고 key는 암호화 복호화에 사용될 Key를 설정해 주시면되요~
Key의 경우 서로 암호화 하고 복호화할때 중요하게 적용되기때문에 보안 유지가 잘되야 하겠죠.
저 같은 경우
CiperMode는 ECB로 설정하였고,
Padding의 경우 PKCS7으로 설정하였어요.
복호화
public string Decryption(string str, string key)
{
TripleDESCryptoServiceProvider Tripledes = new TripleDESCryptoServiceProvider();
Tripledes.Mode = CipherMode.ECB;
Tripledes.Padding = PaddingMode.PKCS7;
byte[] b_input = Convert.FromBase64String(str);
byte[] b_key = Encoding.UTF8.GetBytes(key);
MemoryStream tempStream = new MemoryStream();
CryptoStream encStream = new CryptoStream(tempStream, Tripledes.CreateDecryptor(b_key, b_key), CryptoStreamMode.Write);
encStream.Write(b_input, 0, b_input.Length);
encStream.FlushFinalBlock();
return Encoding.UTF8.GetString(tempStream.ToArray());
}
복호화도 마찬가지로 CiperMode랑 Padding을 설정해서
복호화 하시면되요.
이렇게 오늘은 c# 코드를 이용해 TripleDES 암호화/복호화 코딩을 완료하였는데요.
질문 있으시다면 댓글로 남겨 주시면 답변 드리도록 하겠습니다!
감사합니다~
728x90
반응형
'프로그래밍' 카테고리의 다른 글
[C#] System.Net.WebException StatusCode, Response 처리 (0) | 2021.06.17 |
---|---|
[c#] NLog 데이터베이스(DB)에 저장 하는 방법 (0) | 2021.06.16 |
[C#] JSON을 Model 클래스로 변환해주는 사이트(Convert Json to C# Classes Online) (0) | 2021.04.14 |
c# Webclient.UploadString으로 PATCH, PUT, GET 호출 (0) | 2021.04.14 |
c# webClient를 이용해 POST로 API 호출하는 방법 (2) | 2021.04.14 |
댓글