Python անվտանգության ծածկագրման/վերծանման ծրագրակազմ. 3 քայլ
Python անվտանգության ծածկագրման/վերծանման ծրագրակազմ. 3 քայլ
Anonim
Python անվտանգության ծածկագրման/վերծանման ծրագրակազմ
Python անվտանգության ծածկագրման/վերծանման ծրագրակազմ
Python անվտանգության ծածկագրման/վերծանման ծրագրակազմ
Python անվտանգության ծածկագրման/վերծանման ծրագրակազմ

Այս Instructable- ում ես ձեզ ցույց կտամ, թե ինչպես որոշ պարզ Python- ով կարող եք ապահով պահել ձեր ֆայլերը ՝ օգտագործելով արդյունաբերական ստանդարտ AES- ը:

Պահանջներ:

- Python 3.7

- PyAesCrypt գրադարան

- hashlib գրադարան

Եթե դուք չունեք այս գրադարանները, կարող եք հեշտությամբ տեղադրել `մուտքագրելով.

pip3 տեղադրել hashlib

pip3 տեղադրել PyAesCrypt

տերմինալում (կամ CMD)

Դուք արդեն պետք է ունենաք հետևյալները.

- պատահական գրադարան

- os գրադարան

- համակարգի գրադարան

Ես օգտագործում եմ OS X- ը, բայց դա չպետք է չափազանց նշանակություն ունենա, բացառությամբ ֆայլի ուղիների գծերի շեղումների ուղղության (OS X: /, Windows:)

Խնդրում ենք նկատի ունենալ. Ինչ -որ անսարքության պատճառով ծածկագրում տեղ գտած տեղաշարժերը ինչ -ինչ պատճառներով չեն երևում: Հետևաբար, ցուցադրվող ծածկագրում ոչ մի նահանջ չի լինի, այնուամենայնիվ դրանք առկա են Python ֆայլերում, որոնք ես կցել եմ վերջում և կցված նկարներում: Պարզապես մի վերցրեք ծածկագիրը անմիջապես ցուցադրվող տեքստից, քանի որ այն չի աշխատի նահանջների բացակայության պատճառով:

Եթե ունեք բոլոր կախվածությունները, եկեք անցնենք Քայլ 1 -ին:

Քայլ 1: Կարգավորման ֆայլ գրելը

Կարգավորման ֆայլ գրելը
Կարգավորման ֆայլ գրելը
Կարգավորման ֆայլ գրելը
Կարգավորման ֆայլ գրելը
Կարգավորման ֆայլ գրելը
Կարգավորման ֆայլ գրելը

Գործոններից մեկը, որն այսքան ապահով է դարձնում, գաղտնաբառի ստուգման համար հեշերի օգտագործումն է: Կարգավորման ֆայլը (ես զանգում եմ իմը setupsafe.py) պատրաստվում է ՝

- Ստեղծեք թղթապանակ և ծածկագրի ֆայլեր գաղտնաբառի համար

- Սահմանեք գաղտնաբառը

- Սահմանեք ֆայլի համարը

- Կոտրեք գաղտնաբառը

Նախ, մենք մտադիր ենք ներմուծել մեր կախվածությունները.

sys ներմուծումից *

ներմուծել os

պատահական ներմուծում

ներմուծել hashlib

Հաջորդը, մենք կստեղծենք թղթապանակ `գաղտնաբառի հեշը և կեղծ ֆայլերը պահելու համար.

փորձեք. եթե ոչ os.path.exists ('desktop/safesetup'):

os.mkdir ('աշխատասեղան/safesetup/')

բացառությամբ OSError:

տպել («Թղթապանակ ստեղծելիս սխալ առաջացավ»)

Այս ծածկագիրը կստեղծի մի թղթապանակ, որը կոչվում է safesetup (եթե այն արդեն գոյություն չունի):

Դրանից հետո մենք մտադիր ենք գաղտնաբառ սահմանել և 1 -ից 100 -ի միջև պատահական թիվ ստեղծել ՝ որպես կեղծ ֆայլեր նավարկելու մեր միջոց:

գլոբալ գաղտնաբառ գաղտնաբառ = argv [1].encode ('utf-8')

n = պատահական. անվանում (1, 101)

Այժմ, երբ մենք ունենք մեր գաղտնաբառը և ֆայլի համարը, մենք ստեղծելու ենք 99 կեղծ ֆայլեր safesetup- ի ներսում և մեկ իրական ֆայլ, որը կպարունակի մեր գաղտնաբառի հեշը.

x միջակայքում (101). եթե (x! = n):

f = բաց (("desktop/safesetup/"+str (x)), "w+")

զ. փակել ()

այլ:

գաղտնաբառ = hashlib.sha256 (գաղտնաբառ).hexdigest ()

f = բաց (("desktop/safesetup/"+str (x)), "w+")

զ. գրել (գաղտնաբառ)

զ. փակել ()

տպել (n)

Իրական ֆայլը կոչվում է ինչ էլ որ լինի n թիվը: Այս ֆայլը պարունակում է մեր գաղտնաբառը ՝ sha256 ալգորիթմի միջոցով հեշի ենթարկվելուց հետո (այս հեշ ալգորիթմը լայնորեն օգտագործվում է կրիպտոարժույթներում, հատկապես Bitcoin- ում):

Հիշեք, թե ինչ է n- ն (այն տպվելու է վահանակում), քանի որ այն նույնքան կարևոր է, որքան գաղտնաբառը:

Դա այն ամենն է, ինչ մեզ անհրաժեշտ է մեր տեղադրման ծրագրի համար, ուստի այժմ կանցնենք գաղտնագրման/վերծանման ծրագրին:

Քայլ 2: Գաղտնագրման/վերծանման ֆայլ

Գաղտնագրման/վերծանման ֆայլ
Գաղտնագրման/վերծանման ֆայլ

Հիմնական ֆայլի կարգավորումների բաժինը ներմուծում է կախվածությունները, խափանում մուտքագրված գաղտնաբառը և առբերում իրական գաղտնաբառի հեշը ՝ մուտքագրված ֆայլի համարի միջոցով:

Նախ, կախվածությունները.

sys ներմուծումից *ներմուծում os

ներմուծել pyAesCrypt

ներմուծել hashlib

Հաջորդը, մուտքագրված գաղտնաբառի հեշինգը.

գաղտնաբառ = argv [1].encode ('utf-8') գաղտնաբառ = hashlib.sha256 (գաղտնաբառ).hexdigest ()

Վերջապես, հեշ գաղտնաբառի որոնում.

file_key = str (argv [2]) hash = open (("desktop/safesetup/" + file_key), ("r +")). կարդալ ()

Գաղտնագրման ֆայլի երկրորդ բաժինը համեմատում է հեշերը, որոշում համեմատության իսկությունը և օգտագործում է AESCrypt python գրադարանը ՝ ձեր ընտրած ֆայլը ծածկագրելու կամ վերծանելու համար: Սա բավականին մեծ կոդ է, բայց ես այն կբաժանեմ.

if (գաղտնաբառ == հաշ): տպել («Գաղտնաբառը ընդունված է»)

բուֆեր Չափը = 64 * 1024

գործողություն = str (մուտքագրում («Դուք ֆայլեր առբերու՞մ եք, թե՞ ծածկագրում եք (r կամ e)»))

եթե (գործողություն == 'r'):

file_name = str (մուտքագրում («Ֆայլ առբերելու համար.»))

pyAesCrypt.decryptFile ((file_name + ".aes"), file_name, գաղտնաբառ, bufferSize)

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

elif (գործողություն == 'e'):

file_name = str (մուտքագրում («Գաղտնագրման ֆայլ.»))

pyAesCrypt.encryptFile (ֆայլի_անուն, [ֆայլի_անուն +..աես »), գաղտնաբառ, բուֆեր Չափ)

os.remove (ֆայլի_անուն)

այլ:

տպել ("Սխալ. սխալ մուտքագրում")

այլ:

տպել («Մուտքը մերժված է»)

Առաջին if հայտարարությունը որոշում է, թե արդյոք համընկնում են hashed գաղտնաբառերը: Եթե նրանք դա անում են, այնուհետև հարցնում են ՝ արդյոք ցանկանում եք ծածկագրել ֆայլերը կամ առբերել կոդավորված ֆայլերը: Կախված ձեր մուտքագրումից ՝ այն կամ ծածկագրելու կամ վերծանելու է տրամադրված ֆայլը: Երբ պահանջվում է տալ ֆայլի անունը, համոզվեք, որ նշեք ուղին, եթե ֆայլը նույն գրացուցակում չէ, ինչ python ծրագիրը: Programրագիրը ջնջում է ֆայլը իր նախկին վիճակում ՝ այն փոխարինելով կոդավորված.aes ֆայլով կամ վերծանելով այն փոխարինելով սկզբնական ֆայլով:

Հետագայում, հնարավոր է, սա թարմացնեմ ՝ Python OpenCV գրադարանի միջոցով դեմքի ճանաչում ներառելու համար, բայց առայժմ գաղտնաբառերը բավական կլինեն:

Քայլ 3: Ֆայլերի շահագործում

Կարգավորման ֆայլը գործարկելու համար հետևեք հետևյալ քայլերին.

1. Մուտքագրեք տերմինալը.

python3 գրացուցակ/setupname.py գաղտնաբառ (գրացուցակի, տեղադրման անվան և գաղտնաբառի փոխարինում իրենց համապատասխան արժեքներով)

2. Տերմինալը դուրս կբերի ձեր ֆայլի համարը: Պահպանեք սա:

Գաղտնագրման/վերծանման ծրագիրը գործարկելու համար հետևեք հետևյալ քայլերին.

1. Մուտքագրեք տերմինալը.

python3 գրացուցակ/filename.py գաղտնաբառի ֆայլ (գրացուցակի, ֆայլի անվան, գաղտնաբառի և ֆայլի համարի փոխարինում իրենց համապատասխան արժեքներով)

2. Այնուհետև տերմինալը կամ կընդունի կամ մերժի ձեր գաղտնաբառը: Մերժման դեպքում նորից փորձեք և համոզվեք, որ ճիշտ արժեքներ եք մուտքագրում: Երբ թույլտվություն տրվի, տերմինալը ձեզ կխնդրի ՝ ցանկանում եք ծածկագրել ֆայլը կամ ֆայլը առբերե՞լ: Ֆայլը ծածկագրելու համար մուտքագրեք e, և կոդավորված ֆայլը առբերելու համար մուտքագրեք r.

3. Այնուհետեւ ձեզանից կպահանջվի տրամադրել ֆայլի անունը: Հիշեք, որ տրամադրեք ֆայլի գրացուցակը, ինչպես նաև անունը, ինչպես նաև ֆայլի ընդլայնումը: Այնուամենայնիվ, եթե դուք գաղտնագրում եք ֆայլը, մի մուտքագրեք.aes- ի ընդլայնման մասը, քանի որ դրա կոդն է դրա պատճառը:

4. Այնուհետեւ ծրագիրը ծածկագրում կամ վերծանում է տրամադրված ֆայլը և ջնջում ֆայլը իր նախկին վիճակում (պահպանելով գաղտնագրված կամ գաղտնագրված ֆայլը):

Վոյա! Շնորհակալություն ուսանելի դարձնելու համար, ես գիտեմ, որ կոդի ձեռնարկներ կարդալը ամենազվարճալին չէ: Պիթոնի ֆայլերը կցված են այս քայլին, ձեզանից նրանց համար, ովքեր ցանկանում են դրան հարված հասցնել: Եվս մեկ անգամ, շնորհակալություն ընթերցման համար, և մաղթում եմ ձեզ հաջողություն ձեր հետագա կոդավորման ձեռնարկներում:

Խորհուրդ ենք տալիս: