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);
}