Разработка программного обеспечения для формирования базы данных для государственной итоговой аттестации 9 классов

Разработка информационного обеспечения для формирования базы данных для государственной итоговой аттестации 9 классов. Обзор методов репликации и синхронизации баз данных. Преимущества алгоритма шифрования Rijndael. СУБД Microsoft SQL Server и Firebird.

Рубрика Программирование, компьютеры и кибернетика
Вид дипломная работа
Язык русский
Дата добавления 27.06.2012
Размер файла 3,3 M

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.

Раздел MMMMMMMMMMMMMMMMMMMMMMMMMMMCMXCV Раздел IV Разработка информационного обеспечения

4.1.1 Схема базы

Схема базы представлена на рисунке 1:

Рисунок 1 Схема базы данных

4.1.2 Описание таблиц и полей

Таблица REGION_TABLE хранит информацию о регионе

Name

Data type

Not null

Description

ID

VARCHAR(36)

T

Идентификатор (уникальный ключ)

REGION

INTEGER

T

Номер региона

NAME

VARCHAR(255)

T

Название

LAW_ADDRESS

VARCHAR(255)

T

Фактический адрес

ADDRESS

VARCHAR(255)

T

Юридический адрес

FIO

VARCHAR(255)

T

ФИО

PHONES

VARCHAR(255)

T

Телефон

FAX

VARCHAR(255)

T

Факс

MAILS

VARCHAR(255)

T

e-mail

Таблица ATE_TABLE содержит информацию об АТЕ (административно-территориальная единица)

Name

Data type

Not null

Description

ID

VARCHAR(36)

T

Идентификатор (уникальный ключ)

CODE

INTEGER

T

Код АТЕ

NAME

VARCHAR(255)

T

Название

LAW_ADDRESS

VARCHAR(255)

T

Фактический адрес

ADDRESS

VARCHAR(255)

Юридический адрес

CHARGE_FIO

VARCHAR(150)

T

ФИО председателя

PHONES

VARCHAR(80)

T

Телефон

MAILS

VARCHAR(255)

e-mail

WWW

VARCHAR(255)

Адрес сайта

ISDELETED

INTEGER

T

Признак удаления записи (по умолчанию 0)

F_R

VARCHAR(36)

T

Регион (внешний ключ)

Таблица GOVERNMENTS_TABLE содержит информацию об МОУО (муниципальный орган управления образованием)

Name

Data type

Not null

Description

ID

VARCHAR(36)

T

Идентификатор (уникальный ключ)

F_ATE

VARCHAR(36)

T

АТЕ, которому принадлежит МОУО (внешний ключ)

CODE

INTEGER

T

Код МОУО

NAME

VARCHAR(255)

T

Название

LAW_ADDRESS

VARCHAR(255)

T

Фактический адрес

ADDRESS

VARCHAR(255)

Юридический адрес

CHARGE_FIO

VARCHAR(150)

T

ФИО руководителя МОУО

PHONES

VARCHAR(80)

T

Телефон

MAILS

VARCHAR(80)

T

e-mail

WWW

VARCHAR(255)

Адрес сайта

CHARGE_POSITION

VARCHAR(150)

T

Должность руководителя МОУО

FAXES

VARCHAR(80)

T

Факс

SPECIALIST_FIO

VARCHAR(150)

T

ФИО специалиста ответственного за проведение ГИА в МОУО

SPECIALIST_MAILS

VARCHAR(80)

e-mail специалиста ответственного за проведение ГИА в МОУО

SPECIALIST_PHONES

VARCHAR(255)

T

Телефон специалиста ответственного за проведение ГИА в МОУО

DELETE_TYPE

INTEGER

T

Признак удаления записи

CREATE_DATE

TIMESTAMP

T

Дата создания записи

UPDATE_DATE

TIMESTAMP

T

Дата обновления записи

IMPORT_CREATE_DATE

TIMESTAMP

Дата создания импортирования

IMPORT_UPDATE_DATE

TIMESTAMP

Дата обновления импортирования

Таблица OU_TABLE содержит информацию об ОУ (образовательное учреждение)

Name

Data type

Not null

Description

ID

VARCHAR(36)

T

Идентификатор (уникальный ключ)

GOVERNMENT_ID

VARCHAR(36)

T

МОУО, которому принадлежит ОУ (внешний ключ)

CODE

INTEGER

T

Код ОУ

NAME

VARCHAR(255)

T

Название

FK_SOU

INTEGER

T

Вид ОУ (внешний ключ)

FK_LF

INTEGER

T

Тип собственности(внешний ключ)

FK_TL

INTEGER

T

Тип населенного пункта (внешний ключ)

LAW_ADDRES

VARCHAR(255)

T

Фактический адрес

ADDRESS

VARCHAR(255)

Юридический адрес

DPOSITION

VARCHAR(150)

T

Должность руководителя

FIO

VARCHAR(150)

T

ФИО

PHONES

VARCHAR(80)

T

Телефон

FAXS

VARCHAR(80)

Факс

MAILS

VARCHAR(255)

T

e-mail

CHARGEFIO

VARCHAR(150)

T

Фамилия руководителя

WWW

VARCHAR(255)

Адрес сайта

DELETE_TYPE

INTEGER

T

Признак удаления записи

SHORT_NAME

VARCHAR(255)

T

Краткое наименование

FK_L

INTEGER

T

Город/Район (внешний ключ)

CREATE_DATE

TIMESTAMP

T

Дата создания записи

UPDATE_DATE

TIMESTAMP

T

Дата обновления записи

IMPORT_CREATE_DATE

TIMESTAMP

Дата создания импортирования

IMPORT_UPDATE_DATE

TIMESTAMP

Дата обновления импортирования

Таблица CLASS_TABLE содержит информацию о классах.

Name

Data type

Not null

Description

ID

VARCHAR(36)

T

Идентификатор (уникальный ключ)

NUMBER

VARCHAR(2)

T

Класс

LITERA

VARCHAR(10)

Литера класса

FK_OU

VARCHAR(36)

T

ОУ, которому принадлежит класс (внешний ключ)

CREATE_DATE

TIMESTAMP

T

Дата создания записи

UPDATE_DATE

TIMESTAMP

T

Дата обновления записи

IMPORT_CREATE_DATE

TIMESTAMP

Дата создания импортирования

IMPORT_UPDATE_DATE

TIMESTAMP

Дата обновления импортирования

DELETE_TYPE

INTEGER

T

Признак удаления записи

Таблица STUDENT_TABLE содержит информацию об участниках ГИА

Name

Data type

Not ull

Description

ID

VARCHAR(36)

T

Идентификатор (уникальный ключ)

CODE

VARCHAR(16)

T

Код участника

SURNAME

VARCHAR(80)

T

Фамилия

NAME

VARCHAR(80)

T

Имя

SECONDNAME

VARCHAR(80)

Отчество

DOCUMENT_SERIES

VARCHAR(9)

Серия документа

DOCUMENT_NUMBER

VARCHAR(10)

Номер документа

FK_DT

INTEGER

T

Тип документа (внешний ключ)

SEX

INTEGER

T

Пол участника

PCLASS

VARCHAR(50)

T

Класс

BIRTH_DAY

TIMESTAMP

T

Дата рождения

DELETE_TYPE

INTEGER

T

Признак удаления записи

FK_SC

INTEGER

T

Категория участника (внешний ключ)

FK_OU

VARCHAR(36)

T

ОУ, которому принадлежит участник (внешний ключ)

FK_FT

INTEGER

T

Форма обучения (внешний ключ)

CREATE_DATE

TIMESTAMP

T

Дата создания записи

UPDATE_DATE

TIMESTAMP

T

Дата обновления записи

IMPORT_CREATE_DATE

TIMESTAMP

Дата создания импортирования

IMPORT_UPDATE_DATE

TIMESTAMP

Дата обновления импортирования

FK_CLASS

VARCHAR(36)

T

Класс, которому принадлежит участник (внешний ключ)

FK_CITIZENSHIP

INTEGER

T

Гражданство (внешний ключ)

Таблица CITIZENSHIP_TABLE содержит справочную информацию о гражданстве участника

Name

Data type

Not null

Description

ID

INTEGER

T

Идентификатор (первичный ключ)

NAME

VARCHAR(20)

T

Название

Таблица DAYSEXAMS_TABLE содержит данные о днях проведения экзаменов

Name

Data type

Not null

Description

ID

INTEGER

T

Идентификатор (первичный ключ)

DATE_DAY

DATE

T

Дата проведения экзамена

FK_SUBJECT

INTEGER

T

Идентификатор (уникальный ключ)

IS_FINAL_EXAM

SMALLINT

IS_CANCEL_EXAM

SMALLINT

PATH_TO_FOLDER

VARCHAR(300)

PATTERN_AB

VARCHAR(50)

PATTERN_C

VARCHAR(50)

Таблица DOCUMENTSTYPE_TABLE содержит справочную информацию о типах документов

Name

Data type

Not null

Description

ID

INTEGER

T

Идентификатор (первичный ключ)

NAME

VARCHAR(255)

T

Название

Таблица FORMTRAININGTABLE содержит справочную информацию о формах обучения

Name

Data type

Not null

Description

FTID

INTEGER

T

Идентификатор (первичный ключ)

NAMEFT

VARCHAR(50)

T

Название

Таблица LEGALFORM_TABLE содержит справочную информацию о типах собственности

Name

Data type

Not null

Description

ID

INTEGER

T

Идентификатор (первичный ключ)

CODE

INTEGER

T

Код

NAME

VARCHAR(75)

T

Название

Таблица LEVEL_TABLE содержит справочную информацию об уровне доступа к БД.

Name

Data type

Not null

Default

Description

LEVELDB

INTEGER

T

-1

Уровень доступа к БД (Регион, АТЕ, ОУ)

Таблица LOCALITY_TABLE содержит справочную информацию о местоположении ОУ (город или район)

Name

Data type

Not null

Description

LOCALITYID

INTEGER

T

Идентификатор (первичный ключ)

REGION

INTEGER

T

Номер региона

NAME

VARCHAR(255)

T

Название

OCATO

VARCHAR(50)

OCATO

Таблица STATEOU_TABLE содержит справочную информацию о видах ОУ

Name

Data type

Not null

Description

ID

INTEGER

T

Идентификатор (первичный ключ)

FK_TOU

INTEGER

T

Тип ОУ (внешний ключ)

CODE

INTEGER

T

Код

NAME

VARCHAR(150)

T

Название

Таблица STUDENTCATEGORIES_TABLE содержит справочную информацию о категориях участников.

Name

Data type

Not null

Description

ID

INTEGER

T

Идентификатор (первичный ключ)

CODE

INTEGER

T

Код

NAME

VARCHAR(255)

T

Название

Таблица STUDEXAM_TABLE содержит данные об экзаменах, которые выбрали участники

Name

Data type

Not null

Description

ID

INTEGER

T

Идентификатор (первичный ключ)

FK_DE

INTEGER

T

Дата экзамена (внешний ключ)

FK_STUDENT

VARCHAR(36)

T

Участник (внешний ключ)

MARK

INTEGER

Оценка участника

Таблица SUBJECT_TABLE содержит справочную информацию о предметах ГИА

Name

Data type

Not null

Description

ID

INTEGER

T

Идентификатор (первичный ключ)

CODE

INTEGER

T

Код

SUBJECT

VARCHAR(100)

T

Название предмета

MASK_A

VARCHAR(100)

MAX_A

INTEGER

MASK_B

VARCHAR(100)

MAX_B

INTEGER

MASK_C

VARCHAR(100)

MAX_C

INTEGER

MASK_D

VARCHAR(100)

MAX_D

INTEGER

MAX_CRITERION

SMALLINT

MAX_SUM

SMALLINT

Таблица TYPELOCALITY_TABLE содержит справочную информацию о типах населенных пунктов

Name

Data type

Not null

Description

ID

INTEGER

T

Идентификатор (первичный ключ)

CODE

INTEGER

T

Код

NAME

VARCHAR(50)

Название

Таблица TYPEOU_TABLE содержит справочную информацию о типах ОУ

Name

Data type

Not null

Description

ID

INTEGER

T

Идентификатор (первичный ключ)

CODE

INTEGER

T

Код

NAME

VARCHAR(255)

T

Название

4.2 Разработка программного обеспечения

Описаны основные классы и методы в них.

4.2.1 Класс «Регион» (RegionWidget)

Класс предназначен для представления и редактирования информации о регионе.

void saveChanges(); //сохранение изменений

bool getChangedData() //были ли изменены данные

void setBackRequiredFields(); //установка обязательных для заполнения полей

void setRegularExp(); //установка условий проверки вводимых данных

4.2.2 Класс «административно-территориальная единица» (AteTabWidget)

Класс отображения, редактирования или удаления данных по выбранной административно-территориальной единице и муниципальном органе управления образованием.

void setCurrentAte(QTreeWidgetItem * item, int type); //отображает текущий выбранный АТЕ

void saveChanges(); //сохранение изменений

void deleteAte(QTreeWidgetItem *pItem, QTreeWidgetItem *item); //удаление АТЕ

bool getChangedData(); //были ли изменены данные

void setBackRequiredFields(); //установка обязательных для заполнения полей

void setRegularExp(); //установка условий проверки вводимых данных

void createAte(); //создание АТЕ

4.2.3 Класс «образовательное учреждение» (OUtabWidget)

Класс служит для представления, редактирования, удаления данных о выбранном образовательном учреждении.

void setCurrentOu(QTreeWidgetItem * item, int type); //отображает текущий выбранный ОУ

void saveChanges(); //сохранение изменений

void deleteOu(QTreeWidgetItem *pItem, QTreeWidgetItem *item); //удаление ОУ

bool getChangedData(); //были ли изменены данные

void setBackRequiredFields(); //установка обязательных для заполнения полей

void setRegularExp(); //установка условий проверки вводимых данных

void createOu(); //создание ОУ

4.2.4 Редактирование класса (ClassWidget)

Класс для представления и редактирования данных по выбранному классу. Редактирование номера и литеры класса.

void saveChanges(); //сохранение изменений

void setCurrentClass(QTreeWidgetItem * item, int type); //отображает текущий выбранный класс

void deleteClass(QTreeWidgetItem *pItem, QTreeWidgetItem *item);

bool getChangedData(); //были ли изменены данные

void setBackRequiredFields(); //установка обязательных для заполнения полей

void setRegularExp(); //установка условий проверки вводимых данных

void changeStudent(QModelIndex index); //при изменении текущего участника отображаются экзамены, которые им выбраны

4.2.5 Класс «участник» (StudentDialog)

Класс предназначен для представления, редактирования и удаления данных по выбранному участнику. Осуществлена проверка выбора одинаковых дней для нескольких экзаменов.

void setCurrentStudent(QTreeWidgetItem *item, int type); //отображает текущего выбранного участника

void deleteStudent(QTreeWidgetItem *pItem, QTreeWidgetItem *item);

void saveChanges(); //сохранение изменений

bool getChangedData(); //были ли изменены данные

void setBackRequiredFields(); //установка обязательных для заполнения полей

void setRegularExp(); //установка условий проверки вводимых данных

void updateRecord(); //сохранение изменений

void cancelUpdate(); //отменяет изменения в данных об участнике

void createStudent(); //создание записи об участнике

void dataChangedStudent(const QModelIndex &topLeft, const QModelIndex &bottomRight);

bool checkDateExam(int index); //проверка совпадения дат экзаменов

4.2.6 Класс «создание отчетов» (createReports)

Класс для создания отчета в формате xlsx по выбранной административно-территориальной единице или образовательном учреждении.

void setBorders(QAxObject *sheet, const QString &range);

//установка границ для диапазона ячеек

void setStyle(QAxObject *sheet, const QString &range, QString text, bool isBold = false,

int fontSize = 10, int hAlignment = 3, int vAlignment = 2, bool wrapText = false,

int Orientation = 0, bool isBordered = false);

//установка стиля для диапазона ячеек

void createReportAte(const QString &idATE, const QString fileName);

//создание отчета для АТЕ и сохранение в excel файл с именем fileName

void createReportOu(const QString &idOU, const QString &fileName);

//создание отчета для ОУ и сохранение в excel файл с именем fileName

void createReportClasses(QAxObject *sheet, QSqlQueryModel *modelStudents, QSqlQueryModel *modelSubjects, const QString &idClass, const QString &nameOU, const QString &codeOU, const QString &nameClass, const QString &chargefio, const QString &dposition);

//создание отчета для класса и сохранение в excel файл с именем filename

4.2.7 Класс «загрузка данных» (loadDialog)

Класс предназначен для загрузки данных об административно территориальных единицах, муниципальных органах управления образованием, образовательных учреждениях, классах, участниках и выбранных участниками экзаменах. Загрузка производится из зашифрованного файла.

void readFromXML(const QString &fileName); //чтение информации об АТЕ, ОУ, классах, участниках и выбранных экзаменах из зашифрованного файла

4.2.8 Класс «выгрузка данных» (unloadDialog)

Класс записи данных об административно-территориальных единицах, муниципальных органах управления образованием, образовательных учреждениях, классах, участниках и выбранных участниками экзаменах. Выгрузка данных производится в зашифрованный файл. Также в этом классе реализованы методы экспортирования данных в новый файл базы данных.

void searchIdRecords(QString id, int tUnit);//поиск АТЕ или ОУ по id

void writeToXML(const QString &fileName, QString id); //запись данных в зашифрованный XML файл

void exportData();//экспортирование данных из текущей базы в зашифрованный XML файл, либо в новый файл базы данных

4.2.9 Класс шифрования данных (myCrypto)

Класс, реализующий шифрование и дешифрование информации.

QString encrypt(const QString & strToEncrypt); //шифрование информации по алгоритму AES

QString decrypt(const QString & strToDecrypt); //дешифрование данных по алгоритму AES

Раздел V Руководство пользователя

Руководство пользователя по работе приложением ГИА для уровня «Регион»

5.1 Системные требования

-Операционная система Microsoft® Windows® 2000/XP/Vista/7

-256мб оперативной памяти;

-34,04 МБ свободного места на жестком диске;

-наличие ODBC драйвера для подключения к SQL Server.

5.2 Установка

Запустите инсталлятор GIA-1.5.0.6Region.exe и выберите путь для установки приложения (рис.1).

Рисунок 2 Выбор места установки приложения

5.3 Запуск приложения

В меню Пуск-Все программы-ГИА запустите программу, после подключения к локальной БД будет показано главное окно приложения (рис. 2).

Рисунок 3 Главное окно приложения

5.4 Работа с программой

5.4.1 Описание меню

Для уровня «Регион» доступно 3 меню: Файл, Справочные таблицы, Поиск.

В меню «Файл» доступны следующие подменю (рис. 3)

Рисунок 4 Меню Файл

1. «Выгрузка для» позволяет создать файлы баз данных для административных единиц ниже уровня региона (АТЕ, ОУ). Данные будут выгружены по выбранным пользователем АТЕ или ОУ, которые затем можно разослать по соответствующим учреждениям.

2. «Экспорт» также позволяет сделать выгрузку данных по АТЕ или ОУ в зашифрованном файле с расширением *.xmlEnc. Экспортирование данных позволяет обмен данными между учреждениями для обновления информации по АТЕ, ОУ, классам, участникам ГИА, а также выбранным экзаменам участниками.

3. «Импорт». Нужен для загрузки данных из файла с расширением *.xmlEnc и добавления/удаления/обновления данных.

4. «Загрузить CSV-файлы». Загрузка в файл БД записей.

5. «Загрузить таблицы из Sql Server». Подключение к базе данных SQL Server и выгрузка данных в таблицы локальной БД.

В меню «Справочные таблицы» доступные все вспомогательные таблицы БД, которые можно редактировать (добавление удаление обновление).

Список доступных таблиц показан на рисунке 4.

Рисунок 5 Справочные таблицы

В меню «Поиск» только один пункт, который позволяет выполнить простейшие способы поиска записей в таблицах.

На панель инструментов для удобства добавлены кнопки «Поиск», «Сохранить» и «Создание отчетов»(рис. 5).

Рисунок 6 панель инструментов

5.4.2 Доступные операции при работе с ПО

Главное окно программы разделено на две части. В левой половине показана иерархия АТЕ, ОУ, классов и участников в виде дерева. В правой отображается информация по выбранному элементу дерева.

Переключение между пунктами в дереве позволяет посмотреть информацию, либо произвести редактирование. В случае если данные были изменены, перед переходом к другому элементу в дереве пользователю будет задан вопрос о сохранении данных, либо отмене. Для сохранения изменений можно воспользоваться кнопкой «Сохранить» на панели инструментов (рис. 6).

Рисунок 7 Запрос на сохранение изменений

Доступны функции добавления/удаления АТЕ, ОУ, класса или участника ГИА. Чтобы воспользоваться какой-либо из доступных действий, необходимо выбрать элемент в дереве и сделать клик правой кнопкой после чего будет доступно одно из нескольких видов контекстного меню (зависит от уровня выбранного элемента). Все виды доступных контекстных меню показаны на рисунке ниже

Рисунок 8 Пункты меню для разных уровней (Регион-АТЕ-ОУ-Класс Участник)

Чтобы назначить участнику экзамены, нужно сначала создать самого участника, ввести основную информацию по нему (ФИО, дата рождения, паспортные данные), затем перейти к нему. После создания участника список экзаменов пуст, чтобы назначить день, надо около названия предмета включить галочку, которая покажет список доступных дат для выбранного предмета (рис. 8).

Рисунок 9 Назначение экзаменов участнику

Заключение

В результате прохождения преддипломной практики было проведено ознакомление со структурой предприятия и разработано программное обеспечение для формирования базы данных для государственной итоговой аттестации 9 классов.

Основные возможности:

· Работа с данными административно-территориальных единиц, муниципальных органов управления образованием, образовательных учреждений и участников ГИА;

· Распределение данных по административно-территориальным единицам и образовательным учреждениям;

· * Репликация данных при передаче между приложениями разных уровней: Регион и АТЕ; Регион и ОУ; АТЕ и ОУ;

· * Передача данных в зашифрованном виде;

· * Формирование отчетных документов в формате xlsx о выбранных экзаменах участниками по АТЕ или ОУ;

· * Экспортирование и импортирование данных об административно-территориальной единице в РЦОИ

Список литературы

1. Trolltech. Databases with Qt.Англ., 2001г - 137 с.

2. Федеральные Стандарты Обработки Информации (FIPS). FIPS 197. Англ., 2001г - 47с.

3. Хелен Борри. Firebird: Руководство разработчика баз данных. Пер. с англ, 2-е издание - М.: Издательство БХВ-Петербург, 2007 г.

4. Бланшет Ж., Саммерфилд М. Qt 4: программирование GUI на C++. Пер. с англ. 2-е изд., доп. - М.: КУДИЦ-ПРЕСС, 2008 г. - 736 с.

5. Рябков Н.С.. Аналитический обзор методов репликации и синхронизации баз данных - Качество. Инновации. Образование: Издательство Европейский центр по качеству, 2006 г.- 56-63 с.

6. Под ред. Гладченко А., Щербинина В. Репликация SQL Server 2005/2008. Сборник статей от сообщества - М.: ЭКОМ Паблншерз, 2008 г. - 288 с.

7. Форум разработчиков Qt http://www.qtcentre.org/forum/

8. Html документация по работе с QCA QPI http://delta.affinix.com/qca/

Приложение

Код класса myCrypto для шифрования/дешифрования данных

myCrypto::myCrypto(QObject *parent) :

QObject(parent)

{

sizeBlock = 15; //размер блока данных

sKey = "*************************"; //секретный ключ

}

//метод класса для шифрования блока данных

//в качестве результата метод возвращает зашифрованную строку

QString myCrypto::encrypt(const QString &strToEncrypt)

{

//инициализация

QCA::Initializer init;

//переводим строку в массив байт для шифрования

QCA::SecureArray arg = QVariant(strToEncrypt).toByteArray();

QString res;

// проверяем наличие поддержки алгоритма шифрования AES128

if (QCA::isSupported("aes128-cbc-pkcs7"))

{

//преобразования над ключом

//для того, чтобы затруднить взлом ключа

QStringList lst = sKey.split("-");

lst = lst.replaceInStrings("c", "s");

lst.removeAt(0);

lst.removeAt(5);

//создаем ключ

QCA::SymmetricKey key(QVariant(lst.join(".")).toByteArray());

//Создаем случайный инициализирующий вектор

QCA::InitializationVector iv(QVariant(lst.join(">")).toByteArray());

QCA::Cipher cipher(QString("aes128"), QCA::Cipher::CBC, QCA::Cipher::DefaultPadding,

QCA::Encode, key, iv);

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

if (!cipher.ok())

{

qCritical(QString("строка: 43; модуль: mycrypto.cpp; Ошибка при вызове объекта cipher;\r\n").toAscii());

return res;

}

QCA::SecureArray f = cipher.final();

if (!cipher.ok())

{

qCritical(QString("строка: 50; модуль: mycrypto.cpp; Ошибка при вызове объекта cipher;\r\n").toAscii());

return res;

}

res = QString(QCA::arrayToHex(f.toByteArray()));//QString(f.data());

} else {

qCritical(QString("строка: 55; модуль: mycrypto.cpp; Ошибка при вызове объекта cipher;\r\n").toAscii());

QMessageBox::critical(0, "", "Не поддерживается шифрование. Сообщите разработчику об этой ошибке", QMessageBox::Ok);

}

return res;

}

QString myCrypto::decrypt(const QString &strToDecrypt)

{

//инициализация

QCA::Initializer init;

//переводим строку в массив байт для шифрования

QCA::SecureArray arg = QCA::hexToArray(strToDecrypt);

QString res;

// проверяем наличие поддержки алгоритма шифрования AES128

if (QCA::isSupported("aes128-cbc-pkcs7"))

{

//преобразования над ключом

//для того, чтобы затруднить взлом

QStringList lst = sKey.split("-");

lst = lst.replaceInStrings("c", "s");

lst.removeAt(0);

lst.removeAt(5);

//создаем ключ

QCA::SymmetricKey key(QVariant(lst.join(".")).toByteArray());

//Создаем случайный инициализирующий вектор

QCA::InitializationVector iv(QVariant(lst.join(">")).toByteArray());

QCA::Cipher cipher(QString("aes128"), QCA::Cipher::CBC, QCA::Cipher::DefaultPadding,

QCA::Decode, key, iv);

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

if (!cipher.ok())

{

qCritical(QString("строка: 92; модуль: mycrypto.cpp; Ошибка при вызове объекта cipher;\r\n").toAscii());

return res;

}

QCA::SecureArray f = cipher.final();

if (!cipher.ok())

{

qCritical(QString("строка: 99; модуль: mycrypto.cpp; Ошибка при вызове объекта cipher;\r\n").toAscii());

return res;

}

res = QString(f.data());

} else {

qCritical(QString("строка: 104; модуль: mycrypto.cpp; Ошибка при вызове объекта cipher;\r\n").toAscii());

QMessageBox::critical(0, "", "Не поддерживается шифрование. Сообщите разработчику об этой ошибке", QMessageBox::Ok);

}

return res;

}

Размещено на Allbest.ru


Подобные документы

  • Программные продукты, используемые при проектировании базы данных. Разработка базы данных "Библиотека" с использование программного проекта Microsoft SQL Server. Создание таблиц, триггеров, пользователей, репликации, запросов, функций, процедур.

    курсовая работа [897,6 K], добавлен 21.11.2011

  • Разработка базы данных средствами СУБД Microsoft SQL Server 2008. Исследование понятия первичного и внешнего ключа. Реляционные отношения между таблицами базы данных. Ссылочная целостность и каскадные воздействия. Проектирование запросов и триггеров.

    курсовая работа [1,0 M], добавлен 27.05.2015

  • Разработка прикладного программного продукта, позволяющего автоматизировать сдачу итоговой государственной аттестации, а также экзаменов и зачетов по специальности 230106 "Техническое обслуживание средств вычислительной техники и компьютерных сетей".

    дипломная работа [25,7 M], добавлен 07.11.2013

  • Процесс поступления пациента в больницу. Программное обеспечение, используемое в разработке. Обзор Borland Delphi7, MS SQL Server 2008. Динамическое изменение и расширение структуры базы данных. Обоснование выбора СУБД и программного обеспечения.

    курсовая работа [875,4 K], добавлен 21.04.2013

  • Разработка базы данных, содержащей информацию, необходимую Государственной инспекции по маломерным судам для выдачи билетов владельцам судов. Особенности создания файла и диаграмм базы данных, SQL-запросов. Объекты информационной модели и их свойства.

    курсовая работа [1,3 M], добавлен 24.10.2012

  • Освоение сервисной системы управления базами данных Microsoft SQL. Разработка базы данных "Служба АТС" в среде Microsoft SQL Server Management Studio и создание запросов на языке SQL. Апробация инфологической модели "сущность - связь" базы данных.

    курсовая работа [2,9 M], добавлен 29.06.2015

  • Обзор и сравнительная характеристика программного обеспечения для создания СУБД. Принципы организации данных. Основные возможности MS Access. Разработка структуры и реализация средствами SQL базы данных для учета заказов, наличия и продажи автозапчастей.

    курсовая работа [2,5 M], добавлен 27.05.2013

  • Концептуальная модель базы данных "Бюро по трудоустройству". Разработка информационного и программного обеспечения объектов автоматизации. Реализация базы данных в СУБД MsAccess. Запросы к базе данных. Таблицы, отчеты и макросы. Интерфейс пользователя.

    курсовая работа [5,2 M], добавлен 30.05.2016

  • Информационные задачи и круг пользователей системы. Выработка требований и ограничений. Разработка проекта базы данных. Программная реализация проекта базы данных. Разработка хранимых процедур для поддержки сложных ограничений целостности в базе данных.

    курсовая работа [706,2 K], добавлен 17.06.2012

  • Концептуальное проектирование базы данных: разработка схемы и структуры таблиц, описание атрибутов. Реализация базы данных в среде СУБД MS SQL Server 2000. Основные принципы создания таблиц. Доступ и обработка данных с помощью утилиты Enterprise Manager.

    курсовая работа [3,8 M], добавлен 22.01.2013

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.