Mündəricat:

Python Təhlükəsizlik Şifrələmə/Şifrəni Açma Proqramı: 3 addım
Python Təhlükəsizlik Şifrələmə/Şifrəni Açma Proqramı: 3 addım

Video: Python Təhlükəsizlik Şifrələmə/Şifrəni Açma Proqramı: 3 addım

Video: Python Təhlükəsizlik Şifrələmə/Şifrəni Açma Proqramı: 3 addım
Video: Encryption (Şifrələmə) nədir? | Tech-Terms #26 2024, Noyabr
Anonim
Python Təhlükəsizlik Şifrələmə/Şifrəni Açma Proqramı
Python Təhlükəsizlik Şifrələmə/Şifrəni Açma Proqramı
Python Təhlükəsizlik Şifrələmə/Şifrəni Açma Proqramı
Python Təhlükəsizlik Şifrələmə/Şifrəni Açma Proqramı

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

Quraşdırma faylının yazılması
Quraşdırma faylının yazılması
Quraşdırma faylının yazılması
Quraşdırma faylının yazılması
Quraşdırma faylının yazılması
Quraşdırma faylının yazılması
Quraşdırma faylının yazılması
Quraşdırma faylının yazılması

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ı

Şifrələmə/şifrəni açma faylı
Şifrələmə/şifrəni açma faylı
Şifrələmə/şifrəni açma faylı
Şifrələmə/şifrəni açma faylı
Şifrələmə/şifrəni açma faylı
Ş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ə: