powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / C++ [игнор отключен] [закрыт для гостей] / Реализация AES
8 сообщений из 8, страница 1 из 1
Реализация AES
    #38130022
GorloPavel
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Здравствуйте. Нужна помощь. Есть приложение которое нужно портировать на С++(Qt). Но возникла сложность в использовании алгоритма шифрования. Вообщем есть класс на C# который шифрует и дешифрует массив byte алгоритмом AES. Я пробовал собрать библиотеку QCA для QT но ничего не вышло. Да и библиотека слишком большая для моих целей. Пытался найти класс на чистом C++ который бы мне подошел, но все четно. Как быть? Заранее огромное спасибо за любую помощь!


Класс на C#:

Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
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);
        }

    }

...
Рейтинг: 0 / 0
Реализация AES
    #38130522
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
GorloPavelКак быть?
Пойти на склад RFC, найти среди них тот, который описывает AES, там будет готовый код.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Реализация AES
    #38130545
wvetal
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
GorloPavel,

Попробуй посмотреть в сторону OpenSSL.
...
Рейтинг: 0 / 0
Реализация AES
    #38130907
GorloPavel
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry Sibiryakov,

Не совсем понял.
...
Рейтинг: 0 / 0
Реализация AES
    #38130909
GorloPavel
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
wvetal,

А как его прикрутить к QT?
...
Рейтинг: 0 / 0
Реализация AES
    #38130965
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
GorloPavelНе совсем понял.
Какое слово тебе непонятно?
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Реализация AES
    #38130994
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Хотя... Я был неправ. AES это не интернет-стандарт, так что искать его в RFC бесполезно.
Но вот с wiki есть
несколько занимательных ссылок.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Реализация AES
    #38131180
wvetal
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
GorloPavelwvetal,
А как его прикрутить к QT?
Я сам с QT не работал, но если ввести в Гугле: "openssl qt" - то можно что-то найти по этому поводу
...
Рейтинг: 0 / 0
8 сообщений из 8, страница 1 из 1
Форумы / C++ [игнор отключен] [закрыт для гостей] / Реализация AES
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]