Mundarija:

Python xavfsizligini shifrlash/shifrini ochish dasturi: 3 qadam
Python xavfsizligini shifrlash/shifrini ochish dasturi: 3 qadam

Video: Python xavfsizligini shifrlash/shifrini ochish dasturi: 3 qadam

Video: Python xavfsizligini shifrlash/shifrini ochish dasturi: 3 qadam
Video: Sezar shifri | Kriptografiya | Informatika 2024, Noyabr
Anonim
Python xavfsizligini shifrlash/shifrini ochish dasturi
Python xavfsizligini shifrlash/shifrini ochish dasturi
Python xavfsizligini shifrlash/shifrini ochish dasturi
Python xavfsizligini shifrlash/shifrini ochish dasturi

Bu yo'riqnomada men sizga oddiy Python yordamida fayllaringizni sanoat standarti AES yordamida xavfsiz saqlashingiz mumkinligini ko'rsataman.

Talablar:

- Python 3.7

- PyAesCrypt kutubxonasi

- hashlib kutubxonasi

Agar sizda bunday kutubxonalar bo'lmasa, yozib osongina o'rnatishingiz mumkin:

pip3 hashlib -ni o'rnating

pip3 PyAesCrypt -ni o'rnating

terminalda (yoki CMD)

Sizda allaqachon bo'lishi kerak:

- tasodifiy kutubxona

- os kutubxonasi

- tizim kutubxonasi

Men OS X dan foydalanmoqdaman, lekin fayl yo'llaridagi chiziqlar yo'nalishi bundan mustasno (OS X: /, Windows: ) juda muhim emas.

Iltimos, diqqat qiling: ba'zi nosozliklar tufayli, koddagi chiziqlar negadir ko'rsatilmaydi. Natijada, ko'rsatiladigan kodda hech qanday bo'sh joy bo'lmaydi, lekin ular oxiriga biriktirilgan Python fayllarida va ilova qilingan rasmlarda mavjud. Kodni to'g'ridan -to'g'ri ko'rsatilgan matndan olmang, chunki u bo'sh joy yo'qligi sababli ishlamaydi

Agar sizda barcha qaramliklar o'rnatilgan bo'lsa, keling 1 -bosqichga o'tamiz.

1 -qadam: O'rnatish faylini yozish

O'rnatish faylini yozish
O'rnatish faylini yozish
O'rnatish faylini yozish
O'rnatish faylini yozish
O'rnatish faylini yozish
O'rnatish faylini yozish
O'rnatish faylini yozish
O'rnatish faylini yozish

Bu xavfsizlikni ta'minlaydigan omillardan biri parolni tekshirish uchun xeshlardan foydalanishdir. O'rnatish fayli (men o'z setupsafe.py -ga qo'ng'iroq qilaman) quyidagicha bo'ladi:

- Parol uchun papka va qo'g'irchoqli fayllar yarating

- Parolni o'rnating

- Fayl raqamini o'rnating

- Parolni yashiring

Birinchidan, biz o'z qaramligimizni import qilamiz:

sys importidan *

import qilish os

tasodifiy import

hashlib import qilish

Keyin biz parol xash va qo'g'irchoqli fayllarni saqlash uchun papka yaratamiz:

harakat qilib ko'ring: bo'lmasa os.path.exists ('ish stoli/safesetup'):

os.mkdir ('ish stoli/xavfsiz o'rnatish/')

OSError -dan tashqari:

chop etish ("Jild yaratishda xato")

Bu kod Safesetup deb nomlangan papkani yaratadi (agar u mavjud bo'lmasa).

Shundan so'ng, biz parolni o'rnatamiz va qo'g'irchoq fayllar bo'ylab harakatlanish usuli sifatida 1 dan 100 gacha bo'lgan tasodifiy sonni yaratamiz:

global parol parol = argv [1].encode ('utf-8')

n = tasodifiy.randint (1, 101)

Endi bizda parol va fayl raqami bo'lsa, biz xavfsiz sozlamalarda 99 ta qo'g'irchoqli faylni yaratamiz va bitta haqiqiy faylni o'z ichiga olamiz:

x uchun (101) diapazonda: agar (x! = n):

f = ochiq (("ish stoli/safesetup/"+str (x)), "w+")

f.yaqin ()

boshqa:

parol = hashlib.sha256 (parol).hexdigest ()

f = ochiq (("ish stoli/safesetup/"+str (x)), "w+")

f. yozish (parol)

f.yaqin ()

chop etish (n)

Haqiqiy fayl n butun son deb nomlanadi. Bu faylda sha256 algoritmi ishlatilgandan so'ng, bizning parolimiz bor (bu xash algoritmi kriptovalyutalarda, xususan, Bitcoinda keng qo'llaniladi).

N nima ekanligini eslang (u konsolda chop etiladi), chunki bu parol kabi muhim.

O'rnatish dasturi uchun bizga kerak bo'lgan narsa shu, endi biz shifrlash/shifrni ochish dasturiga o'tamiz.

2 -qadam: Shifrlash/shifrni ochish fayli

Shifrlash/shifrni ochish fayli
Shifrlash/shifrni ochish fayli
Shifrlash/shifrni ochish fayli
Shifrlash/shifrni ochish fayli
Shifrlash/shifrni ochish fayli
Shifrlash/shifrni ochish fayli

Asosiy faylni sozlash bo'limi qaramliklarni import qiladi, kiritilgan parolni xesh qiladi va kiritilgan parol raqami yordamida haqiqiy parol xeshini oladi.

Birinchidan, bog'liqliklar:

sys import *import os dan

pyAesCrypt -ni import qiling

hashlib import qilish

Keyin kiritilgan parolni xeshlash:

parol = argv [1].encode ('utf-8') parol = hashlib.sha256 (parol).hexdigest ()

Nihoyat, parolni parol bilan qidirish:

file_key = str (argv [2]) xash = ochiq (("ish stoli/safesetup/" + file_key), ("r +")). o'qing ()

Shifrlash faylining ikkinchi bo'limi xeshlarni taqqoslaydi, taqqoslash to'g'riligini aniqlaydi va siz tanlagan faylni shifrlash yoki parolini ochish uchun AESCrypt python kutubxonasidan foydalanadi. Bu kodning juda katta qismi, lekin men uni buzaman:

if (parol == xash): chop etish ("Parol qabul qilindi")

bufferSize = 64 * 1024

operation = str (kiritish ("Siz fayllarni qabul qilyapsizmi yoki shifrlaysizmi? (r yoki e)")))

agar (operatsiya == 'r'):

file_name = str (kiritish ("Qabul qilish uchun fayl:"))

pyAesCrypt.decryptFile ((file_name + ".aes"), file_name, parol, bufferSize)

os.remove ((file_name + ".aes"))

elif (operatsiya == 'e'):

file_name = str (kiritish ("Faylni shifrlash:"))

pyAesCrypt.encryptFile (file_name, (file_name + ".aes"), parol, bufferSize)

os.remove (file_name)

boshqa:

chop etish ("Xato: noto'g'ri kiritish")

boshqa:

chop etish ("Kirish taqiqlangan")

Birinchi if iborasi, parollangan parollar mos kelishini aniqlaydi. Agar shunday qilsalar, u holda siz fayllarni shifrlashni yoki shifrlangan fayllarni olishni xohlaysizmi, deb so'rashadi. Kirishingizga qarab, u taqdim etilgan faylni shifrlaydi yoki shifrini ochadi. Fayl nomini berish so'ralganda, fayl python dasturi bilan bir xil katalogda bo'lmasa, yo'lni belgilang. Dastur faylni avvalgi holatida o'chirib tashlaydi, uning o'rniga shifrlangan.aes faylini yoki parolini ochadi va asl faylga almashtiradi.

Kelajakda men buni Python OpenCV kutubxonasi yordamida yuzni aniqlashni o'z ichiga olishi uchun yangilashim mumkin edi, lekin hozircha parollar etarli bo'ladi.

3 -qadam: fayllar bilan ishlash

O'rnatish faylini ishga tushirish uchun quyidagi amallarni bajaring:

1. Terminalni kiriting:

python3 katalogi/setupname.py paroli (katalog, sozlash nomi va parolni tegishli qiymatlari bilan almashtirish)

2. Terminal sizning fayl raqamingizni chiqaradi. Buni saqlang.

Shifrlash/shifrni ochish dasturini ishga tushirish uchun quyidagi amallarni bajaring:

1. Terminalni kiriting:

python3 katalogi/filename.py parol fayl raqami (katalog, fayl nomi, parol va fayl raqamini tegishli qiymatlari bilan almashtirish)

2. Keyin terminal parolingizni qabul qiladi yoki rad etadi. Agar rad etilsa, qayta urinib ko'ring va to'g'ri qiymatlarni kiritganingizga ishonch hosil qiling. Kirish huquqi berilgach, terminal sizdan faylni shifrlashni yoki faylni olishni xohlaysizmi, deb so'raydi. Faylni shifrlash uchun e yozing va shifrlangan faylni qaytaring, r yozing.

3. Keyin sizdan fayl nomini kiritish talab qilinadi. Fayl katalogini, nomini va fayl kengaytmasini ko'rsatishni unutmang. Ammo, agar siz faylni shifrini ochayotgan bo'lsangiz, kengaytmaning.aes qismini yozmang, chunki bu kodni hisobga oladi.

4. Keyin dastur taqdim etilgan faylni shifrlaydi yoki shifrini ochadi va faylni oldingi holatida o'chiradi (shifrlangan yoki shifrlangan faylni saqlab qoladi).

Voila! Buni o'qitiladigan joyga aylantirganingiz uchun tashakkur, men bilaman, kod darslarini o'qish eng qiziqarli narsa emas. Python fayllari bu qadamni o'z ichiga oladi, kim sizga bu rasmni berishni xohlasa. Yana bir bor o'qiganingiz uchun tashakkur va kelgusi kodlash ishlarida omad tilayman.

Tavsiya: