Оглавление:

Программное обеспечение для шифрования / дешифрования безопасности Python: 3 шага
Программное обеспечение для шифрования / дешифрования безопасности Python: 3 шага

Видео: Программное обеспечение для шифрования / дешифрования безопасности Python: 3 шага

Видео: Программное обеспечение для шифрования / дешифрования безопасности Python: 3 шага
Видео: Шифрование и дешифрование файлов в Python 2024, Ноябрь
Anonim
Программное обеспечение для шифрования / дешифрования Python Security
Программное обеспечение для шифрования / дешифрования Python Security
Программное обеспечение для шифрования / дешифрования Python Security
Программное обеспечение для шифрования / дешифрования Python Security

В этом руководстве я покажу вам, как с помощью простого Python вы можете защитить свои файлы с помощью отраслевого стандарта AES.

Требования:

- Python 3.7

- Библиотека PyAesCrypt

- библиотека hashlib

Если у вас нет этих библиотек, вы можете легко установить, набрав:

pip3 установить hashlib

pip3 установить PyAesCrypt

в терминале (или CMD)

У вас уже должно быть:

- случайная библиотека

- библиотека ОС

- системная библиотека

Я использую OS X, но это не должно иметь большого значения, за исключением направления косой черты в путях к файлам (OS X: /, Windows:)

Обратите внимание: из-за некоторого сбоя отступы в коде по какой-то причине не отображаются. Следовательно, в отображаемом коде не будет углублений, однако они присутствуют в файлах Python, которые я прикрепил в конце, и на прилагаемых рисунках. Только не берите код прямо из отображаемого текста, потому что он не будет работать из-за отсутствия отступов

Если у вас установлены все зависимости, перейдем к шагу 1.

Шаг 1. Написание установочного файла

Запись установочного файла
Запись установочного файла
Запись установочного файла
Запись установочного файла
Запись установочного файла
Запись установочного файла
Запись установочного файла
Запись установочного файла

Одним из факторов, обеспечивающих такую безопасность, является использование хэшей для проверки пароля. Установочный файл (я называю свой setupsafe.py) будет:

- Создайте папку и фиктивные файлы для пароля

- Установить пароль

- Установить номер файла

- Хешировать пароль

Во-первых, мы собираемся импортировать наши зависимости:

из sys import *

импорт ОС

случайный импорт

импортировать hashlib

Затем мы создадим папку для хранения хэша пароля и фиктивных файлов:

попробуйте: если не os.path.exists ('desktop / safesetup'):

os.mkdir ('рабочий стол / safesetup /')

кроме OSError:

print ("Ошибка при создании папки")

Этот код создаст папку с именем safesetup (если она еще не существует).

После этого мы собираемся установить пароль и сгенерировать случайное число от 1 до 100 в качестве нашего способа навигации по фиктивным файлам:

глобальный парольpassword = argv [1].encode ('utf-8')

п = random.randint (1, 101)

Теперь, когда у нас есть пароль и номер файла, мы собираемся создать 99 фиктивных файлов внутри safesetup и один реальный файл, который будет содержать хэш нашего пароля:

для x в диапазоне (101): if (x! = n):

f = open (("рабочий стол / safesetup /" + str (x)), "w +")

f.close ()

еще:

пароль = hashlib.sha256 (пароль).hexdigest ()

f = open (("рабочий стол / safesetup /" + str (x)), "w +")

f.write (пароль)

f.close ()

печать (п)

Настоящий файл называется любым целым числом n. Этот файл содержит наш пароль после хеширования с использованием алгоритма sha256 (этот алгоритм хеширования широко используется в криптовалютах, в первую очередь в биткойнах).

Запомните, что такое n (оно будет напечатано в консоли), поскольку оно так же важно, как и пароль.

Это все, что нам нужно для нашей программы установки, поэтому мы перейдем к программе шифрования / дешифрования.

Шаг 2: файл шифрования / дешифрования

Файл шифрования / дешифрования
Файл шифрования / дешифрования
Файл шифрования / дешифрования
Файл шифрования / дешифрования
Файл шифрования / дешифрования
Файл шифрования / дешифрования

Раздел настройки основного файла импортирует зависимости, хеширует введенный пароль и извлекает реальный хэш пароля, используя введенный номер файла.

Во-первых, зависимости:

из sys import * import os

импорт pyAesCrypt

импортировать hashlib

Далее хеширование введенного пароля:

пароль = argv [1].encode ('utf-8') пароль = hashlib.sha256 (пароль).hexdigest ()

Наконец, получение хешированного пароля:

file_key = str (argv [2]) hash = open (("рабочий стол / safesetup /" + file_key), ("r +")). read ()

Второй раздел файла шифрования сравнивает хэши, определяет достоверность сравнения и использует библиотеку Python AESCrypt для шифрования или дешифрования выбранного файла. Это довольно большой кусок кода, но я его разобью:

if (пароль == хэш): print ("Пароль принят")

bufferSize = 64 * 1024

operation = str (input ("Вы извлекаете или шифруете файлы? (r или e)"))

if (operation == 'r'):

file_name = str (input ("Файл для извлечения:"))

pyAesCrypt.decryptFile ((имя_файла + ".aes"), имя_файла, пароль, размер буфера)

os.remove ((имя_файла + ".aes"))

elif (операция == 'e'):

file_name = str (input ("Файл для шифрования:"))

pyAesCrypt.encryptFile (имя_файла, (имя_файла + ".aes"), пароль, размер буфера)

os.remove (имя_файла)

еще:

print ("Ошибка: неправильный ввод")

еще:

print («Доступ запрещен»)

Первый оператор if определяет, совпадают ли хешированные пароли. Если они это сделают, он затем спросит, хотите ли вы зашифровать файлы или получить зашифрованные файлы. В зависимости от вашего ввода, он либо зашифрует, либо расшифрует предоставленный файл. Когда будет предложено указать имя файла, обязательно укажите путь, если файл не находится в том же каталоге, что и программа python. Программа удаляет файл в его предыдущем состоянии, заменяя его зашифрованным файлом.aes или расшифровывая его и заменяя исходным файлом.

В будущем я мог бы обновить это, чтобы включить распознавание лиц с использованием библиотеки Python OpenCV, но на данный момент паролей должно хватить.

Шаг 3: Работа с файлами

Чтобы запустить установочный файл, выполните следующие действия:

1. Введите в терминал:

каталог python3 / setupname.py пароль (заменяя каталог, имя настройки и пароль соответствующими значениями)

2. Терминал выдаст номер вашего файла. Сохраните это.

Чтобы запустить программу шифрования / дешифрования, выполните следующие действия:

1. Введите в терминал:

python3 directory / filename.py пароль номер файла (замена каталога, имени файла, пароля и номера файла соответствующими значениями)

2. Терминал примет или отклонит ваш пароль. В случае отказа попробуйте еще раз и убедитесь, что вы ввели правильные значения. После предоставления доступа терминал спросит вас, хотите ли вы зашифровать файл или получить файл. Чтобы зашифровать файл, введите e, а для получения зашифрованного файла введите r.

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

4. Затем программа шифрует или дешифрует предоставленный файл и удаляет файл в его предыдущем состоянии (сохраняя зашифрованный или дешифрованный файл).

Вуаля! Спасибо, что сделали это так, чтобы это стало понятным, я знаю, что чтение руководств по программированию - не самое интересное. Файлы python включены в этот шаг для тех из вас, кто хочет попробовать. Еще раз спасибо за чтение, и я желаю вам удачи в ваших будущих начинаниях по кодированию.

Рекомендуемые: