Mundarija:
- 1 -qadam: O'rnatish faylini yozish
- 2 -qadam: Shifrlash/shifrni ochish fayli
- 3 -qadam: fayllar bilan ishlash
Video: Python xavfsizligini shifrlash/shifrini ochish dasturi: 3 qadam
2024 Muallif: John Day | [email protected]. Oxirgi o'zgartirilgan: 2024-01-30 13:26
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
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
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:
Pythonda Qaysar shifrlash dasturi: 4 qadam
Python -dagi Qaysar shifrlash dasturi: Qaysar shifri - bu qadimiy va keng qo'llaniladigan shifr bo'lib, uni shifrlash va hal qilish oson. Alfavit harflarini almashtirish orqali butunlay yangi alifbo yaratiladi (ABCDEF 4 ta harfni almashtirib, EFGHIJga aylanadi). Caesar C
O'zingizning SMS -xabarlaringizni xavfsizligini nazorat qilish tizimini GPS qiling: 5 qadam (rasmlar bilan)
O'zingizning SMS -xabarlaringizni xavfsizligini kuzatishni GPS tizimiga aylantiring: Ushbu loyihada men sizga SIM5320 3G modulini Arduino va piezoelektrik o'tkazgich bilan zarba sensori sifatida birlashtirishni ko'rsataman. SMS orqali qimmatbaho mashina
Qattiq disklar xavfsizligini Arduino va barmoq izlari sensori yordamida yaxshilash: 6 qadam
Qattiq disklar xavfsizligini Arduino va barmoq izlari sensori yordamida yaxshilang: Ushbu maqolada biz barmoq izlari sensori va Arduino yordamida qattiq diskda saqlangan raqamli ma'lumotlar xavfsizligini qanday yaxshilashni ko'rsatmoqchimiz. Maqolaning oxirida siz: barmoq izlari sensoridan foydalanishni o'rganasiz
Notepad yordamida oddiy xabarlarni shifrlash/parolini ochish: 5 qadam
Notepad yordamida oddiy xabarlarni shifrlash/shifrlashni tuzing: Salom, bu oddiy HTML ilovasi yordamida siz o'z xabaringizni parol bilan shifrlashingiz va shifrini ochishingiz mumkin. Birinchidan, men sizga uni qanday yaratishni, keyin esa undan qanday foydalanishni ko'rsataman. Boshlaylik
USB drayverini shifrlash: 7 qadam
USB drayverini shifrlash: Men sizga TrueCrypt bepul shifrlash vositasi yordamida USB drayverini shifrlash uchun kerak bo'lgan qadamlarni ko'rsataman. Men ko'rsatma sifatida Windows XP tizimini ishlataman, lekin TrueCrypt Linux va OS X da ishlaydi