Разработка мобильного приложения для ОС Android с использованием симметричного шифрования Blowfish

Описание приложения для OC Android разработанного на языке программирования высокого уровня Python использующего аппаратное обеспечение телефона для создания и передачи зашифрованных с использованием ассиметричного шифрования "Blowfish" QR кодов.

Рубрика Коммуникации, связь, цифровые приборы и радиоэлектроника
Вид дипломная работа
Язык русский
Дата добавления 07.08.2018
Размер файла 4,5 M

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

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

from kivy.uix.textinput import TextInput

from kivy.uix.image import Image

from kivy.uix.listview import ListView

from kivy.setupconfig import USE_SDL2

from datetime import datetime

import qrcode

import os

import blowfish

import sqlite3

Описываем класс главного окна, наследуемый от класса BoxLayout в котором объявляем все дочерние окна, а также устанавливаем нажатым меню Scan

class Main(BoxLayout):

Метод инициализации класса Main:

def __init__(self):

Метод Super инициализирует унаследованный класс чтобы мы могли пользоваться методами и атрибутами

super (Main, self). __init__ ()

Методы ClickedManager, ClickedSetting, ClickedHystory, ClickedScan, ClickedCreate очищают главное окно и добавляют виджеты нижней панели и виджеты соответствующие выбранной активности.

Класс Menu наследуется от класса BoxLayout, имеет метод инициализации класса, в котором мы создаём кнопки и привязываем их к классу def __init__(self):

Класс History наследуется от класса BoxLayout содержит метод инициализации, а также метод loadHistory который подключается к базе данных

db = sqlite3.connect('C:\Users\User\Desktop\DIP\DATA.db')

и отправляет запросы SQl на отображение хранящихся там данных QR кодов,

cr.execute('''SELECT File, Format, Data, Text FROM QR''')

после чего выводит их в виде списка.

for i in cr.fetchall():

box = BoxLayout()

igm = Image(source=str(i[0] + '.' + i[1]))

box.add_widget(igm)

box.add_widget(Label(text=str(i[2])))

box.add_widget(Label(text=str(i[3])))

self.add_widget(box)

Класс Scan содержит в себе метод инициализации

def __init__(self):

В котором мы создаём кнопки Менеджер паролей, сканировать, считать из файла, а затем привязываем их к классу.

Создаём класс Creat который отвечает за создание QR кодов, сохранение их в базе данных, выводит QR код в специальном окне.

def __init__(self):

super(Creat, self).__init__()

Метод init инициализирует класс Create, создаёт графический интерфейс, def share(self, instance):

Метод saveBD сохраняет получившийся QR код в базе данных, сначала происходит проверка поля ключа для шифрования

def saveBD(self, instance):

В случае если строка ввода ключа пустая происходит сохранение Qr код с ID ключа пустого поля

saveBD(self, instance):

if self.editLineCode.text.__str__() == '':

db = sqlite3.connect('C:\Users\User\Desktop\DIP\DATA.db')

cr = db.cursor()

cr.execute('''INSERT INTO QR(File, Format, Data, Type, Text, ID_key)

VALUES(?,?,?,?,?,?) ''',

(self.qr_file.split('.')[0], self.qr_file.split('.')[-1], datetime.now().__str__().split(" ")[0],

'No', self.editLineText.text.__str__(), 1))

db.commit()

qr_file = os.path.join(self.qr_file.split('.')[0] + '.' + self.qr_file.split('.')[-1])

fileImg = open(qr_file, 'wb')

self.qr_save.save(fileImg)

fileImg.close()

В противном случае происходит поиск ключа в базе данных, если ключ не найден происходит сохранение ключа в базе данных. Если код найден происходит поиск ID ключа шифрования и сохранение кода с этим ключом

else:

db = sqlite3.connect('C:\Users\User\Desktop\DIP\DATA.db')

cr = db.cursor()

cr.execute('''SELECT id

FROM Passwords

WHERE Key = '%s' ''' % self.editLineCode.text.__str__())

id_code = cr.fetchone()

if id_code is None:

cr.execute('''INSERT INTO Passwords(Key, Rating)

VALUES(?,?) ''',

(self.editLineCode.text.__str__(), 0))

db.commit()

cr.execute('''SELECT id

FROM Passwords

WHERE Key = '%s' ''' % self.editLineCode.text.__str__())

id_code = cr.fetchone()

for i in id_code:

id_code = i

print id_code

Метод отвечающий за обновление отображения QRкода в специальном окне по ходу ввода данных в поля текста и ключа шифрования.

def updateQr(self, instance):

Метод share реализует функцию передачи QR кода через доступные пользователю средства передачи данных.

def share(self, instance):

path = self.qr_file

Класс Manager описывает окно Менеджер паролей.

def __init__(self):

Метод Init осуществляет инициализацию класса, реализует графиеский интерфейс.

def serch(self)

Метод Search обращается к базе данных с SQL запросом на поиск ключа шифрования.

db = sqlite3.connect('C:\Users\User\Desktop\DIP\DATA.db')

cr.execute('''SELECT Key FROM Passwords''')

В библиотеке Blowfish находятся методы для кодирования и декодирования информации.

def encryptbytes(data, key):

Метод encryptbytes шифрует данные с заданным ключом

def decryptbytes(data, key):

Метод decryptbytes дешифрует данные с заданным ключом

Заключение

В рамках данной работы было разработано приложение для операционной системы Android реализующее функции создания, сканирования и хранения QR кодов, зашифрованных с помощью алгоритма симметричного шифрования Blowfish. Данное приложение может стать модулем крупной системы по автоматической аутентификации персонала предприятия.

Был исследован вопрос разработки приложений с использованием современных средств разработки, проведён их сравнительный анализ, также рассмотрены операционные системы, доминирующие на рынке мобильных устройств. Выбранная для разработки операционная система была изучена. Проведён сравнительный анализ языков разработки, были рассмотрены методы и средства кроссплатформенной разработки. В итоге были решены следующие задачи:

1. Был проведён обзор аналогов приложения.

2. Было создано приложение для OC android реализующее следующие функции:

* Создание QR кодов, хранящих в себе информацию, зашифрованную алгоритмом Blowfish.

* Расшифровка с помощью ключа зашифрованных QR кодов.

* Хранение созданных, а также сканированных QR кодов, а также ключей и зашифрованной информации в базе данных.

В связи с последними новостями существует вероятность что Java в скором времени перестанет быть монополистом в сфере разработки приложений Android, и возможно в скором времени разработчики станут делать выбор в пользу кроссплатформенных решений для создания своих приложений. Одним из таких решений является фреймворк Kivy.

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


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

  • Загальні відомості та системні вимоги до ОС Android. Апаратна складова, багатозадачність, інтерфейс користувача. Ініціалізація клієнта Repo. Завантаження дерева Android. Усунення проблем з мережею. Використання локального дзеркала. Перевірка Git тегів.

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

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

    реферат [4,2 M], добавлен 25.12.2015

  • Разработка клиент-серверного приложения для передачи данных с использованием среды программирования Microsoft Visual Studio 2005. Архитектура клиент/сервер. Сокеты и библиотека WinSock. Разработка системы передачи данных в локальной вычислительной сети.

    курсовая работа [479,1 K], добавлен 23.06.2012

  • Математическая основа построения систем защиты информации в телекоммуникационных системах. Особенности методов криптографии. Принципы, методы и средства реализации защиты данных. Основы ассиметричного и симметричного шифрования-дешифрования информации.

    курсовая работа [46,9 K], добавлен 13.12.2013

  • HTC One X как первый коммуникатор компании HTC с четырехъядерным процессором под управлением операционной системы Android 4.0 c интерфейсом HTC Sense 4.0. Обзор операционной системы Android. Диагностика проблем и ремонт микросхем смартфона HTC One X.

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

  • Выбор и обоснование трассы линии связи Кемерово - Ленинск-Кузнецкий: определение числа каналов, системы передачи и типа кабеля. Конструктивный расчет параметров передачи симметричного кабеля. Расчет опасного влияния ЛЭП, молниезащита магистрали; смета.

    курсовая работа [569,5 K], добавлен 13.11.2013

  • Исследование устройства мобильного телефона, переносного средства связи, предназначенного преимущественно для голосового общения. Характеристика влияния электромагнитного излучения на эндокринную и сердечнососудистую системы, активность мозга человека.

    реферат [1,5 M], добавлен 18.12.2011

  • Создание программно-аппаратного комплекса, обеспечивающего защиту информации. Анализ существующих средств шифрования. Расчеты основных показателей надежности устройства: конструкторско-технологический, электрический, теплового режима, на вибропрочность.

    дипломная работа [2,3 M], добавлен 19.10.2010

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

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

  • Применение кодирования с исправлением ошибок для восстановления данных, потерянных при их передаче и хранения. Использование кодов Рида-Соломона с недвоичными символами. Деление полиномов как важный момент при кодировании и декодировании кодов компьютера.

    реферат [43,4 K], добавлен 25.02.2014

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