Форум русскоязычного сообщества Ubuntu


Считаете, что Ubuntu недостаточно дружелюбна к новичкам?
Помогите создать новое Руководство для новичков!

Автор Тема: Qt 5.0.2(4.8.4) шифрование TripleDES, нужна помощь  (Прочитано 2020 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн nextdrift

  • Автор темы
  • Любитель
  • *
  • Сообщений: 60
    • Просмотр профиля
Всем привет. Не могу найти примера, как зашифровать данные при помощи 3DES на Qt
Пока нашёл QCA2, но вот как зашифровать/расшифровать не пойму

Можете пример написать? Или ткнуть носом на пример, а то не могу найти... :-\

Оффлайн Чистый

  • Почётный модератор
  • Старожил
  • *
  • Сообщений: 3473
  • nix - вот оно счастье...
    • Просмотр профиля
Re: Qt 5.0.2(4.8.4) шифрование TripleDES, нужна помощь
« Ответ #1 : 11 Июня 2013, 00:04:05 »
зачем вам это? Может проще использовать сторонние библиотеки? Или это такое задание?
ну и про пример это сильно, не думаю что кто-то будет за вас писать реализацию сего алгоритма:)
Тестовый репозиторий kdeNeur ppa:devcode/kdeneur
各々が死ぬことをどのように決定する

Оффлайн nextdrift

  • Автор темы
  • Любитель
  • *
  • Сообщений: 60
    • Просмотр профиля
Re: Qt 5.0.2(4.8.4) шифрование TripleDES, нужна помощь
« Ответ #2 : 11 Июня 2013, 01:02:52 »
У меня просто вся группа делает задания на C#
Ну а я выдвинулся делать на Qt и препод сделал для меня исключение, позволив делать на Qt  :)
4 лаботраторных сделал, осталась 5-ая, шифрование.
По заданию нужно использовать алгоритм 3DES

вот нашёл кое-что http://www.essentialunix.org/index.php?option=com_content&view=article&id=48:qcatutorial&catid=34:qttutorials&Itemid=53

это то что мне нужно или нет (правда ток не через мой алгоритм сделано)?

Оффлайн Чистый

  • Почётный модератор
  • Старожил
  • *
  • Сообщений: 3473
  • nix - вот оно счастье...
    • Просмотр профиля
Re: Qt 5.0.2(4.8.4) шифрование TripleDES, нужна помощь
« Ответ #3 : 11 Июня 2013, 08:46:49 »
QCA само то если вам надо использовать алгоритм, а не реализовывать его....
QCA есть ваш алгоритм шифрования: http://delta.affinix.com/docs/qca/index.html
Тестовый репозиторий kdeNeur ppa:devcode/kdeneur
各々が死ぬことをどのように決定する

Оффлайн nextdrift

  • Автор темы
  • Любитель
  • *
  • Сообщений: 60
    • Просмотр профиля
Re: Qt 5.0.2(4.8.4) шифрование TripleDES, нужна помощь
« Ответ #4 : 11 Июня 2013, 09:39:25 »
Немного неправильно выразился :) Как правильно записать для моего варианта с 3DES ?
Я вроде зашифровал, а вот расшифровать не могу...


код шифрования
void MainWindow::encryptSomeData()
{
    QCA::Initializer init;

    QCA::SecureArray arg = ui->lineEdit->text().toAscii();//"Login|PASSWORD  ";

    QByteArray Arr = "IGHAJQUS00LY830XXXXXXXXX";
    QCA::SymmetricKey key(Arr);

    QCA::InitializationVector iv(8);


    QCA::Cipher cipher(QString("tripledes"),QCA::Cipher::ECB,
                       QCA::Cipher::DefaultPadding,
                       QCA::Encode,
                       key, iv);
   
    // из строки "Login|PASSWORD  " получаем "020d7f61e857a1bdd187952a8fc1931d"
    ui->textEdit->setText(QCA::arrayToHex(u.toByteArray()));

    decryptData();
}


код дешифрования
void MainWindow::decryptData()
{
    QCA::Initializer init;

    QCA::SecureArray arg = QCA::hexToArray(ui->textEdit->toPlainText());

    QByteArray Arr = "IGHAJQUS00LY830XXXXXXXXX";
    QCA::SymmetricKey key(Arr);

    QCA::InitializationVector iv(8);

    QCA::Cipher cipher(QString("tripledes"),QCA::Cipher::ECB,
                       QCA::Cipher::DefaultPadding,
                       QCA::Decode,
                       key, iv);

    QCA::SecureArray u = cipher.process(arg);

    // из "020d7f61e857a1bdd187952a8fc1931d"
    // получаю "4c6f67696e7c50415353574f52442020"
    ui->textEditDecrypt->append(QCA::arrayToHex(u.toByteArray()));

}

Пользователь решил продолжить мысль 11 Июня 2013, 10:17:24:
Ой сглупил :)

ui->textEditDecrypt->append(QCA::arrayToHex(u.toByteArray()));

подправил на 
ui->textEditDecrypt->append(u.data());

вроде всё заработало как надо :)

Пользователь решил продолжить мысль 11 Июня 2013, 10:50:17:
правда вектор в моём коде тут лишний ещё )
« Последнее редактирование: 11 Июня 2013, 10:50:17 от nextdrift »

 

Страница сгенерирована за 0.047 секунд. Запросов: 25.