Название: Перевести с C#
Отправлено: GPPsoft от Апрель 08, 2012, 07:46
Здравствуйте. Начал переносить один проект с C# на QT C++. Столкнулся с проблемой. Необходимо перенести вот этот класс. Помогите пожалуйста. Заранее огромное человеческое спасибо! public class Crypt { string key = null; RijndaelManaged rijndaelCipher = null;
public Crypt(string key) { this.key = key; rijndaelCipher = new RijndaelManaged(); rijndaelCipher.Mode = CipherMode.CBC; rijndaelCipher.Padding = PaddingMode.PKCS7; rijndaelCipher.KeySize = 0x80; rijndaelCipher.BlockSize = 0x80; }
public byte[] Decrypt(byte[] data) { byte[] pwdBytes = Encoding.UTF8.GetBytes(key); byte[] keyBytes = new byte[0x10]; int len = pwdBytes.Length; if (len > keyBytes.Length) { len = keyBytes.Length; } Array.Copy(pwdBytes, keyBytes, len); rijndaelCipher.Key = keyBytes; rijndaelCipher.IV = keyBytes; return rijndaelCipher.CreateDecryptor().TransformFinalBlock(data, 0, data.Length); }
public byte[] Encrypt(byte[] data) { byte[] pwdBytes = Encoding.UTF8.GetBytes(key); byte[] keyBytes = new byte[0x10]; int len = pwdBytes.Length; if (len > keyBytes.Length) { len = keyBytes.Length; } Array.Copy(pwdBytes, keyBytes, len); rijndaelCipher.Key = keyBytes; rijndaelCipher.IV = keyBytes; ICryptoTransform transform = rijndaelCipher.CreateEncryptor(); byte[] plainText = data; return transform.TransformFinalBlock(plainText, 0, plainText.Length); }
}
Название: Re: Перевести с C#
Отправлено: V1KT0P от Апрель 08, 2012, 11:58
Здравствуйте. Начал переносить один проект с C# на QT C++. Столкнулся с проблемой. Необходимо перенести вот этот класс. Помогите пожалуйста. Заранее огромное человеческое спасибо! public class Crypt { string key = null; RijndaelManaged rijndaelCipher = null;
public Crypt(string key) { this.key = key; rijndaelCipher = new RijndaelManaged(); rijndaelCipher.Mode = CipherMode.CBC; rijndaelCipher.Padding = PaddingMode.PKCS7; rijndaelCipher.KeySize = 0x80; rijndaelCipher.BlockSize = 0x80; }
public byte[] Decrypt(byte[] data) { byte[] pwdBytes = Encoding.UTF8.GetBytes(key); byte[] keyBytes = new byte[0x10]; int len = pwdBytes.Length; if (len > keyBytes.Length) { len = keyBytes.Length; } Array.Copy(pwdBytes, keyBytes, len); rijndaelCipher.Key = keyBytes; rijndaelCipher.IV = keyBytes; return rijndaelCipher.CreateDecryptor().TransformFinalBlock(data, 0, data.Length); }
public byte[] Encrypt(byte[] data) { byte[] pwdBytes = Encoding.UTF8.GetBytes(key); byte[] keyBytes = new byte[0x10]; int len = pwdBytes.Length; if (len > keyBytes.Length) { len = keyBytes.Length; } Array.Copy(pwdBytes, keyBytes, len); rijndaelCipher.Key = keyBytes; rijndaelCipher.IV = keyBytes; ICryptoTransform transform = rijndaelCipher.CreateEncryptor(); byte[] plainText = data; return transform.TransformFinalBlock(plainText, 0, plainText.Length); }
}
И? Что именно не можешь перенести?
Название: Re: Перевести с C#
Отправлено: Figaro от Апрель 08, 2012, 15:55
Голимыми кутями не получится... OpenSSL ну или всякая порнография типа QCA + OpenSSL
Название: Re: Перевести с C#
Отправлено: Bepec от Апрель 09, 2012, 06:52
GPPsoft, а ты ещё лучше просто опиши, что тебе надо сделать :)
А то не все тут в С# разбираются. Мб на Qt будет более простое и лёгкое решение твоей проблемы?
Название: Re: Перевести с C#
Отправлено: V1KT0P от Апрель 09, 2012, 07:02
GPPsoft, а ты ещё лучше просто опиши, что тебе надо сделать :)
А то не все тут в С# разбираются. Мб на Qt будет более простое и лёгкое решение твоей проблемы?
Я тоже не могу понять что у него вызывает трудности. Толи этот класс перенести не может, то-ли аналог RijndaelManaged на C++ найти не может. Rijndael - это AES. Можно взять как готовые реализации так и самому написать.
|