( NewC | 2018. 03. 13., k – 09:24 )

Sziasztok!

Kaptam vissza a "NAV developer helpdesk-től" (nevezzük így), kódot C# nyelven, ami az AES128 dekódolást valósítja meg. Tudom, van akinek itt sikerült (szinte mindenkinek), és azt hogy a C# nem is igazi prognyelv, de gondolom van akinek majd segíteni fog. Kipróbáltam, működik.

//AES128 Rijndael managed osztály megvalósítása
RijndaelManaged GetRijndaelManaged(String secretKey)
{
var keyBytes = new byte[16];
byte[] secretKeyBytes = Encoding.UTF8.GetBytes(secretKey);
Array.Copy(secretKeyBytes, keyBytes, Math.Min(keyBytes.Length, secretKeyBytes.Length));

return new RijndaelManaged
{
Mode = CipherMode.ECB,
Padding = PaddingMode.PKCS7,
KeySize = 128,
BlockSize = 128,
Key = keyBytes,
IV = keyBytes
};
}

//AES128 enkódolás string inputtal
String Aes128Decrypt(String encryptedText, String key)
{
var encryptedBytes = Convert.FromBase64String(encryptedText);
return Encoding.UTF8.GetString(Decrypt(encryptedBytes, GetRijndaelManaged(key)));
}

//AES128 dekódolás byte inputtal
byte[] Decrypt(byte[] encryptedData, RijndaelManaged rijndaelManaged)
{
return rijndaelManaged.CreateDecryptor()
.TransformFinalBlock(encryptedData, 0, encryptedData.Length);
}