티스토리 뷰
using System.Security.Cryptography;
using System.Text;
public class Util{
/*
AES128 암호화
msg = AES128 암호화 대상 문자열
key = AES128 암호화에 사용할 16자리의 키 문자열
*/
static String? AES128ENC(String msg, String key) {
String? res = null;
try {
RijndaelManaged aes = new RijndaelManaged();
aes.KeySize = 256;
aes.BlockSize = 128;
aes.Mode = CipherMode.CBC;
aes.Padding = PaddingMode.PKCS7;
aes.Key = Encoding.UTF8.GetBytes(key);
aes.IV = new byte[] { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 };
var encrypt = aes.CreateEncryptor(aes.Key, aes.IV);
byte[]? xBuff = null;
using (var ms = new MemoryStream())
{
using (var cs = new CryptoStream(ms, encrypt, CryptoStreamMode.Write))
{
byte[] xXml = Encoding.UTF8.GetBytes(msg);
cs.Write(xXml, 0, xXml.Length);
}
xBuff = ms.ToArray();
}
res = Convert.ToBase64String(xBuff);
} catch (Exception e) {
res = null;
}
return res;
}
/*
AES128 복호화
msg = AES128 암호화 처리 된 문자열
key = AES128 암호화에 사용한 16자리의 키 문자열
*/
static String? AES128DEC(String msg, String key){
String? res = null;
try {
RijndaelManaged aes = new RijndaelManaged();
aes.KeySize = 256;
aes.BlockSize = 128;
aes.Mode = CipherMode.CBC;
aes.Padding = PaddingMode.PKCS7;
aes.Key = Encoding.UTF8.GetBytes(key);
aes.IV = new byte[] { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 };
var decrypt = aes.CreateDecryptor();
byte[]? xBuff = null;
using (var ms = new MemoryStream())
{
using (var cs = new CryptoStream(ms, decrypt, CryptoStreamMode.Write))
{
byte[] xXml = Convert.FromBase64String(msg);
cs.Write(xXml, 0, xXml.Length);
}
xBuff = ms.ToArray();
}
res = Encoding.UTF8.GetString(xBuff);
} catch (Exception e) {
res = null;
}
return res;
}
static void Main(){
String oriMsg = "Hello World!!";
String key = "1234qwerasdfzxcv";
String encMsg = Util.AES128ENC(oriMsg, key);
String decMsg = Util.AES128DEC(encMsg, key);
Console.WriteLine("ENC : " + encMsg);
Console.WriteLine("DEC : " + decMsg);
}
}
ENC : bdT0Lda8mbcOdsewTU5mmQ==
DEC : Hello World!!
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
TAG
- 맛집
- SSL
- TIP
- Review
- JavaScript
- Java
- Security
- Fun
- Compile
- development
- devel
- Spring
- 엘리스센터
- Mobile
- Flutter
- Linux
- food
- web
- samba
- ssh
- json parse
- dart
- place
- devtools
- MySQL
- Android
- springboot
- gpkiapi
- kotlin
- HTTP
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
글 보관함