blog

NET/C# 암호화 및 복호화 방법

최근 오픈한 DEWU 플랫폼의 암복호화 과정과 인터넷의 다양한 코드에 대해 많은 시간을 투자하여 드디어 테스트를 마치고 필요한 학생에게 공개합니다. 문서 주소 #/doc?i...

Oct 6, 2025 · 3 min. read
シェア

타사 도킹 암호화 및 복호화 시리즈

서문

최근 DEW 오픈 플랫폼의 암호화 및 복호화 처리 과정에서 많은 시간을 낭비하고 있으며, 인터넷의 코드도 다양하고 최종적으로 학생들에게 필요한 다음과 같은 테스트가 진행되었습니다.

암호화 및 암호 해독 지침

문서

open.dewu.com/#/doc?id=10...

테스트 코드

static void Main(string[] args)
{
 // 
 string plainTxt = "{"list":[{"applyItemNo":"JS570516000080113874","applyNo":"AP1010015038937","num":1,"orderNo":"110105115769884450","skuId":6039421775,"sourceType":"PX_TYPE_NORMAL","spuId":1000108135}],"originalMsgId":2211713,"type":"CONSIGN_RETURN_ON_SHELF","appKey":"7e26470b56dd4d93a8063f1ecc76f986","openId":"VGnFvRhQu6kwswmG"}";
 //  
 var encryptedTxt = $"PR2ccpPboDC+cvnoMlyXOEDEgZhTNnB/HmQZHd+/ysw84BhdZ+658xLGkJbsLuCj53pfp+bXBZeisxPk8lffj9XYAL0eDO7nUW5WWbimWk/ShaqyA5/0Y9ym+odylqs+HiDKCAlate/kvPuhT6E6BfAYDdCaRHqRz82f/qkq8sG3AtvdiiltaYX7T39ky3Q8jLSp7d3qOiwcfcA3jc7ICuWeEQibsZxtidq25VcsnQnOhoD3EwsSjxDUlo6GQ0QRs42aQdQf6wREjkdSt4PQPwSfetgCMLY5Hca9OsA3ru4qIU+fj4exJIuoGKmcQTd9Pps2Y/yiKrQsMBVkF+AQWo9if7w277aF7BKXoMyXwM6MhPXIyTrqkciUBNFGOB7YeHu9/ztqO9fcXpbiYu2YgwMkvdD3Y98hQwlEvXoI=";
 //키, 64비트
 string keys = "3f170f3943e8419c87ce4491a2b6492216f3c99a0fd14de18ae515e3c61e4214";
 // 
 byte[] encryptBytes = AESEncryption.AESEncrypt(Encoding.UTF8.GetBytes(plainTxt), keys);
 Console.WriteLine($"암호화 테스트 결과: {Convert.ToBase64String(encryptBytes).Equals(encryptedTxt)}");
 // 
 byte[] decryptBytes = AESEncryption.AESDecrypt(Convert.FromBase64String(encryptedTxt), keys);
 Console.WriteLine("암호 해독 결과:"+ Encoding.UTF8.GetString(decryptBytes).Equals(plainTxt));
}

암호화 및 암호 해독 알고리즘 코드

class AESEncryption
{
 /// <summary>
 /// AES암호화 알고리즘
 /// </summary>
 /// <param name="plainText">일반 텍스트 문자열</param>
 /// <param name="strKey">Key</param>
 /// <returns>암호화된 암호문 바이트 배열을 반환합니다.</returns>
 public static byte[] AESEncrypt(byte[] inputByteArray, string strKey)
 {
 SymmetricAlgorithm algorithm = CreateAesAlgorithm(strKey);
 ICryptoTransform cTransform = algorithm.CreateEncryptor();
 return cTransform.TransformFinalBlock(inputByteArray, 0, inputByteArray.Length);
 }
 /// <summary>
 /// AES 
 /// </summary>
 /// <param name="cipherText">암호문 바이트 배열</param>
 /// <param name="strKey">Key</param>
 /// <returns>해독된 문자열 반환</returns>
 public static byte[] AESDecrypt(byte[] cipherText, string strKey)
 {
 SymmetricAlgorithm algorithm = CreateAesAlgorithm(strKey);
 ICryptoTransform decryptor = algorithm.CreateDecryptor();
 return decryptor.TransformFinalBlock(cipherText, 0, cipherText.Length);
 }
 private static Aes CreateAesAlgorithm(string strKey)
 {
 var aes = Aes.Create();
 aes.Key = GetKey(strKey);
 aes.BlockSize = 128;
 aes.Mode = CipherMode.ECB;
 aes.Padding = PaddingMode.PKCS7;
 return aes;
 }
 public static byte[] GetKey(string aesKey)
 {
 using var sha1 = SHA1.Create();
 byte[] hash = sha1.ComputeHash(Encoding.UTF8.GetBytes(aesKey));
 var rd = sha1.ComputeHash(hash);
 return rd.Take(16).ToArray();
 }
}

Read next

저장 프로시저 및 프로그램 제어: 개발 경험 공유 및 운영 프로세스 세부 사항

이 문서는 SkyCloud 개발자 커뮤니티 "", 작성자: Binary Poet에서 공유되었습니다.\n\n1.저장 프로시저 및 프로그램 제어의 기본 개념 이해하기\n컴퓨터에서 저장 프로시저는 프로그램과 데이터를 메모리에 저장하는 프로세스입니다. 프로그램 제어는 컴퓨터의 작동을 제어하고 다양한 기능을 달성하기 위해 프로그램을 작성하는 프로세스를 말합니다.

Oct 6, 2025 · 2 min read