Mysql Aes_Encrypt 쿼리 == C# Encrypt String(HEX)
Mysql Aes_Encrypt 쿼리
select HEX(AES_ENCRYPT('텍스트','비밀번호'));
C# Encrypt String(HEX)
private static string Encrypt(string _encryptString, string _passkey)
{
StringBuilder sbResult = new StringBuilder();
byte[] EncryptArray = UTF8Encoding.UTF8.GetBytes(_encryptString);
RijndaelManaged Rdael = new RijndaelManaged();
Rdael.KeySize = 128;
Rdael.BlockSize = 128;
Rdael.Mode = CipherMode.CBC;
Rdael.Padding = PaddingMode.PKCS7;
byte[] keyBytes = new byte[16];
byte[] pwdBytes= Encoding.UTF8.GetBytes(_passkey);
int len = pwdBytes.Length;
if (len > keyBytes.Length)
{
len = keyBytes.Length;
}
Array.Copy(pwdBytes, keyBytes, len);
Rdael.Key = keyBytes;
Rdael.IV = new byte[] { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 };
ICryptoTransform CtransForm = Rdael.CreateEncryptor();
byte[] ResultArray = CtransForm.TransformFinalBlock(EncryptArray, 0, EncryptArray.Length);
foreach (byte b in ResultArray)
{
sbResult.AppendFormat("{0:x2}", b);
}
return (sbResult.ToString().ToUpper());
}
참고)
16진수 문자열과 숫자 형식 간 변환 방법 - C# 프로그래밍 가이드 | Microsoft Docs
byte[] array = { 0x64, 0x6f, 0x74, 0x63, 0x65, 0x74 }; string hexValue = Convert.ToHexString(array); Console.WriteLine(hexValue);
[암호화] Java AES128 암호화 복호화 하는법 (tistory.com)
이준빈은 호박머리 (tistory.com)[암호화] Java AES128 암호화 복호화 하는법 (tistory.com)
[C#] 문자열 암/복호화 (AES) – Kim Kitty .NET
C# AES 암호화 / 복호화 예제 소스 코드 (tistory.com)
How to UNHEX() MySQL binary string in C# .NET? - Stack Overflow