Mündəricat:
- Addım 1: Quraşdırma faylını yazın
- Addım 2: Şifrələmə/şifrəni açma faylı
- Addım 3: Faylların İşlənməsi
Video: Python Təhlükəsizlik Şifrələmə/Şifrəni Açma Proqramı: 3 addım
2024 Müəllif: John Day | [email protected]. Son dəyişdirildi: 2024-01-30 07:46
Bu Təlimat kitabında, bəzi sadə Python ilə sənaye standartı AES istifadə edərək sənədlərinizi necə təhlükəsiz saxlaya biləcəyinizi sizə göstərəcəyəm.
Tələblər:
- Python 3.7
- PyAesCrypt kitabxanası
- hashlib kitabxanası
Bu kitabxanalarınız yoxdursa, yazaraq asanlıqla quraşdıra bilərsiniz:
pip3 hashlib quraşdırın
pip3 PyAesCrypt quraşdırın
terminalda (və ya CMD)
Onsuz da bunlara sahib olmalısınız:
- təsadüfi kitabxana
- os kitabxanası
- sistem kitabxanası
OS X istifadə edirəm, ancaq fayl yollarında kəsiklərin istiqaməti istisna olmaqla çox da əhəmiyyətli olmamalıdır (OS X: /, Windows:)
Diqqət yetirin: Bəzi səhvlər səbəbindən koddakı girintilər nədənsə görünmür. Nəticədə göstərilən kodda heç bir girinti olmayacaq, lakin sonda əlavə etdiyim Python sənədlərində və əlavə şəkillərdə mövcuddur. Kodu birbaşa göstərilən mətndən götürməyin, çünki girintilərin olmaması səbəbindən işləməyəcəkdir
Əgər bütün asılılıqlar quraşdırılıbsa, 1 -ci addıma keçək.
Addım 1: Quraşdırma faylını yazın
Bunu bu qədər etibarlı edən amillərdən biri də parolun yoxlanılması üçün hash istifadə edilməsidir. Quraşdırma faylı (mina setupsafe.py -yə zəng edirəm) gedir:
- Şifrə üçün bir qovluq və saxta fayllar yaradın
- Şifrəni təyin edin
- Fayl nömrəsini təyin edin
- Parolu gizlət
Əvvəlcə asılılıqlarımızı idxal edəcəyik:
sys idxalından *
id id
təsadüfi idxal
hashlib idxal edin
Sonra parol hash və saxta faylları yerləşdirmək üçün bir qovluq yaradacağıq:
cəhd edin: yoxsa os.path.exists ('masaüstü/safesetup'):
os.mkdir ('masaüstü/safesetup/')
OSError istisna olmaqla:
çap et ("Qovluq yaradarkən xəta")
Bu kod, Safesetup adlı bir qovluq yaradacaq (əgər mövcud deyilsə).
Bundan sonra, şifrəni təyin edəcəyik və saxta fayllarda gəzmək üçün 1 ilə 100 arasında təsadüfi bir rəqəm yaradacağıq:
qlobal parol parol = argv [1].encode ('utf-8')
n = təsadüfi.randint (1, 101)
Şifrəmizi və fayl nömrəmizi əldə etdiyimizə görə, Safesetup daxilində 99 saxta fayl və parol hashımızı ehtiva edəcək bir həqiqi fayl yaradacağıq:
x aralığında (101): əgər (x! = n):
f = açıq (("masa üstü/safesetup/"+str (x)), "w+")
f.close ()
başqa:
parol = hashlib.sha256 (parol).hexdigest ()
f = açıq (("masa üstü/safesetup/"+str (x)), "w+")
f. yaz (parol)
f.close ()
çap (n)
Həqiqi fayl n ədədinin nə olursa olsun adlandırılır. Bu fayl sha256 alqoritmindən istifadə edildikdən sonra şifrəmizi ehtiva edir (bu hash alqoritmi kriptovalyutalarda, xüsusən də Bitcoin -də geniş istifadə olunur).
Şifrənin nə qədər vacib olduğu üçün n -nin nə olduğunu unutmayın (konsolda yazılacaq).
Quraşdırma proqramımız üçün ehtiyacımız olan budur, buna görə indi şifrələmə/şifrəni açma proqramına keçəcəyik.
Addım 2: Şifrələmə/şifrəni açma faylı
Əsas faylın quraşdırma bölməsi asılılıqları idxal edir, daxil edilmiş şifrəni saxlayır və daxil edilmiş fayl nömrəsini istifadə edərək həqiqi parol hashını alır.
Birincisi, asılılıqlar:
sys idxalından *idxal os
pyAesCrypt idxal edin
hashlib idxal edin
Sonra, daxil edilmiş parolun hashing edilməsi:
parol = argv [1].encode ('utf-8') parol = hashlib.sha256 (parol).hexdigest ()
Nəhayət, hashed edilmiş parol axtarışı:
file_key = str (argv [2]) hash = open (("desktop/safesetup/" + file_key), ("r +")). oxuyun ()
Şifrələmə faylının ikinci bölməsi həşləri müqayisə edir, müqayisənin doğruluğunu müəyyənləşdirir və seçdiyiniz faylın şifrəsini açmaq və ya deşifr etmək üçün AESCrypt python kitabxanasından istifadə edir. Bu olduqca böyük bir kod yığımıdır, amma onu parçalayacağam:
if (parol == hash): çap et ("Şifrə qəbul edildi")
bufferSize = 64 * 1024
əməliyyat = str (giriş ("Faylları alırsınız və ya şifrələyirsiniz? (r və ya e)")))
əgər (əməliyyat == 'r'):
file_name = str (giriş ("Alınacaq fayl:"))
pyAesCrypt.decryptFile ((fayl_adı + ".aes"), fayl_adı, parol, bufferSize)
os.remove ((fayl_adı + ".aes"))
elif (əməliyyat == 'e'):
file_name = str (giriş ("Şifrələnəcək fayl:"))
pyAesCrypt.encryptFile (file_name, (file_name + ".aes"), parol, bufferSize)
os.remove (fayl_adı)
başqa:
çap et ("Xəta: Yanlış giriş")
başqa:
çap et ("Giriş rədd edildi")
İlk if ifadəsi, hash edilmiş parolların uyğun olub olmadığını müəyyən edir. Bunu etsələr, faylları şifrələmək və ya şifrələnmiş faylları əldə etmək istədiyinizi soruşmağa davam edir. Girişinizdən asılı olaraq, təqdim olunan faylı ya şifrələyəcək, ya da deşifr edəcək. Faylın adını vermək istədikdə, fayl python proqramı ilə eyni qovluqda olmadıqca yolu göstərdiyinizə əmin olun. Proqram faylı əvvəlki vəziyyətində silir, onu şifrəli.aes faylı ilə əvəz edir və ya deşifrini açaraq orijinal faylla əvəz edir.
Gələcəkdə bunu Python OpenCV kitabxanasından istifadə edərək üz tanıma daxil etmək üçün yeniləyə bilərəm, amma hələlik parolların kifayət etməsi lazım olacaq.
Addım 3: Faylların İşlənməsi
Quraşdırma faylını işə salmaq üçün aşağıdakı adımları yerinə yetirin:
1. Terminala yazın:
python3 qovluğu/setupname.py şifrəsi (kataloq, quraşdırma adı və şifrəni müvafiq dəyərləri ilə əvəz edir)
2. Terminal fayl nömrənizi çıxaracaq. Bunu saxla.
Şifrələmə/şifrəni açma proqramını işə salmaq üçün aşağıdakı adımları yerinə yetirin:
1. Terminala yazın:
python3 qovluğu/filename.py parol nömrəsi (qovluğu, fayl adını, şifrəni və fayl nömrəsini müvafiq dəyərləri ilə əvəz edir)
2. Bundan sonra terminal ya parolunuzu qəbul edəcək, ya da rədd edəcək. Rədd olunarsa, yenidən cəhd edin və doğru dəyərləri yazdığınızdan əmin olun. Giriş icazəsi verildikdən sonra, terminal bir faylı şifrələmək və ya faylı geri qaytarmaq istədiyinizi soruşacaq. Bir faylı şifrələmək üçün e yazın və şifrələnmiş faylı əldə etmək üçün r yazın.
3. Bundan sonra fayl adını göstərməyiniz xahiş olunacaq. Faylın kataloqunu, adını və fayl uzantısını verməyi unutmayın. Ancaq bir faylın şifrəsini açırsınızsa, bunun üçün kodun hesablandığı üçün uzantının.aes hissəsini yazmayın.
4. Proqram sonra verilmiş faylı şifrələyir və ya deşifrə edir və faylı əvvəlki vəziyyətində silir (şifrələnmiş və ya deşifr edilmiş fayl saxlanılır).
Voila! Bu qədər təlimatlandırıcı hala gətirdiyiniz üçün təşəkkür edirəm, kod dərslərini oxumağın ən əyləncəli bir şey olmadığını bilirəm. Python faylları, bu addımı atmaq istəyənlər üçün bu addımı əhatə edir. Bir daha oxuduğunuz üçün təşəkkürlər və gələcək kodlaşdırma işlərində uğurlar diləyirəm.
Tövsiyə:
Python Proqramı - Aylıq Töhfələr/Depozit İlə Birləşdirilən Faiz: 5 Addım
Python Proqramı - Aylıq Töhfələr/Depozit İlə Birləşdirilən Faiz: Ayın sonunda aylıq töhfə ilə mürəkkəb faizi hesablamaq üçün proqram. TheCalculatorSite.com saytından götürülmüş formul: Əsas üçün mürəkkəb faiz: P (1+r/n)^(nt) Bir seriyanın gələcək dəyəri: PMT × ((((1 + r/n)^nt - 1)/(r/n))
Como Crear Proqramı, Python Que Encuentre El Area Bajo La Curva De Un Diagrama PV: 5 Addım
Proqramın Python Proqramı ilə Əlaqə Planlaşdırın Diaqram PV: Ən yaxşı dərsliklərin arxivləşdirilməsi ilə əlaqədar bütün sahələri hesablamaq olar. Hesablama və hesablama sahələri çox rəngli və rənglidir; el sahəsi bajo esta
Python Proqramı ilə Əlaqə Sahəsi Diaqram PV: 4 Addım
Proqramın Python Proqramı PV Şöbəsi: Proqramın bütün proqramlarının diaqramı PV -nin diaqramı ilə heç bir əlaqəsi yoxdur. Bu proqramlar ən çox qazana biləcəyiniz zaman müəyyən edilə bilər
ISU Tələbəsi olaraq Pulsuz Proqramı Necə Yükləmək olar (Microsoft, Adobe və Təhlükəsizlik Proqramı: 24 addım
ISU Tələbəsi olaraq Pulsuz Proqramı Necə Yükləmək olar (Microsoft, Adobe və Təhlükəsizlik Proqramı: Adobe üçün: 1 -ci addıma keçin. Microsoft üçün: 8 -ci addıma keçin. Təhlükəsizlik üçün: 12 -ci addıma keçin. Azure üçün: 16 -cı addıma keçin
Arduino ilə bir cihazda şifrəni sındırmaq: 8 addım
Arduino ilə Bir Cihazda Şifrəni Kırma: Şifrə qoyduğum azadlıqdakı heyvanların (marka VICTURE və model HC200) şəkillərini çəkmək üçün bir kameram var və bir müddət sonra istifadə etmədən unutdum. İndi kameranı yandırın dörd sıfır (parolun dörd mövqeyi) və bir kub görünür