Оглавление:
Видео: Программное обеспечение для шифрования / дешифрования безопасности Python: 3 шага
2024 Автор: John Day | [email protected]. Последнее изменение: 2024-01-30 11:52
В этом руководстве я покажу вам, как с помощью простого 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 включены в этот шаг для тех из вас, кто хочет попробовать. Еще раз спасибо за чтение, и я желаю вам удачи в ваших будущих начинаниях по кодированию.
Рекомендуемые:
Программное обеспечение для моделирования светодиодных кубов: 5 шагов
Программное обеспечение для моделирования светодиодного куба: я почти закончил сборку своего светодиодного куба 8x8x8, и вместе с ним пришло это программное обеспечение для ПК! Это помогает вам создавать анимацию и моделировать их на 2D-экране, прежде чем они будут загружены на 3D-экран. Нет поддержки (пока) для общения через
Радиочастотный передатчик Flysky с питанием от USB + проводное подключение сигнала к ПК + бесплатное программное обеспечение для моделирования: 6 шагов
Радиочастотный передатчик Flysky с питанием от USB + проводное соединение сигнала с ПК + бесплатное программное обеспечение для симулятора: если вы похожи на меня, вам захочется протестировать свой радиочастотный передатчик и узнать, прежде чем разбить свой дорогой радиочастотный самолет / дрон. Это доставит вам дополнительное удовольствие, сэкономив при этом кучу денег и времени. Для этого лучше всего подключить радиопередатчик к вам
Как загрузить бесплатное программное обеспечение, будучи студентом ISU (Microsoft, Adobe и программное обеспечение для обеспечения безопасности: 24 шага
Как загрузить бесплатное программное обеспечение в качестве студента ISU (Microsoft, Adobe и программное обеспечение для обеспечения безопасности: для Adobe: перейдите к шагу 1, для Microsoft: перейдите к шагу 8. Для безопасности: перейдите к шагу 12. Для Azure: перейдите к шагу 16
Как использовать программное обеспечение для моделирования Delta WPL Soft? (Начинающие): 15 шагов
Как использовать программное обеспечение для моделирования Delta WPL Soft? (Начинающие): Smart Thinkers предоставят учебные пособия для тех, кто хочет изучить программирование ПЛК с использованием моделирования ПЛК Delta с помощью программного обеспечения WPLSoft 2.41
Компьютер для RE Systems (часть 2 из 2) (программное обеспечение): 6 шагов
Компьютер для RE Systems (часть 2 из 2) (программное обеспечение): в первой части данного руководства, расположенного здесь https://www.instructables.com/id/Computer-for-RE-Systems-Part-1-of-2 -Hardware /, я добавил все оборудование, которое я хотел получить для хорошей настольной системы. Теперь для программного обеспечения, но до программного обеспечения