Мазмұны:

Python қауіпсіздігін шифрлау/шифрды ашу бағдарламасы: 3 қадам
Python қауіпсіздігін шифрлау/шифрды ашу бағдарламасы: 3 қадам
Anonim
Python қауіпсіздігін шифрлау/шифрды шешуге арналған бағдарлама
Python қауіпсіздігін шифрлау/шифрды шешуге арналған бағдарлама
Python қауіпсіздігін шифрлау/шифрды шешуге арналған бағдарлама
Python қауіпсіздігін шифрлау/шифрды шешуге арналған бағдарлама

Бұл нұсқаулықта мен қарапайым Python көмегімен файлдарды өнеркәсіптік стандартты AES көмегімен қауіпсіз сақтауға болатынын көрсетемін.

Талаптар:

- Python 3.7

- PyAesCrypt кітапханасы

- хэшлиб кітапханасы

Егер сізде бұл кітапханалар болмаса, теру арқылы оңай орнатуға болады:

pip3 hashlib орнатыңыз

pip3 PyAesCrypt орнатыңыз

терминалда (немесе CMD)

Сізде мыналар болуы керек:

- кездейсоқ кітапхана

- os кітапханасы

- жүйелік кітапхана

Мен OS X қолданамын, бірақ файл жолдарындағы қиғаштардың бағытын қоспағанда, бұл өте маңызды болмауы керек (OS X: /, Windows:)

Назар аударыңыз: кейбір ақауларға байланысты кодтағы шегіністер қандай да бір себептермен көрсетілмейді. Нәтижесінде көрсетілген кодта шегініс болмайды, бірақ олар соңында мен қосқан Python файлдарында және қоса берілген суреттерде болады. Тек көрсетілген мәтіннен кодты тікелей қабылдамаңыз, себебі ол шегіністің болмауына байланысты жұмыс істемейді

Егер сізде барлық тәуелділіктер орнатылған болса, 1 -қадамға көшейік.

1 -қадам: Орнату файлын жазу

Орнату файлын жазу
Орнату файлын жазу
Орнату файлын жазу
Орнату файлын жазу
Орнату файлын жазу
Орнату файлын жазу
Орнату файлын жазу
Орнату файлын жазу

Бұл қауіпсіздікті қамтамасыз ететін факторлардың бірі - парольді тексеру үшін хэштерді қолдану. Орнату файлы (мен setupsafe.py -ге қоңырау шалып жатырмын):

- Құпия сөз үшін қалта мен жалған файлдар жасаңыз

- Құпия сөзді орнатыңыз

- Файл нөмірін орнатыңыз

- Құпия сөзді жасырыңыз

Біріншіден, біз тәуелділікті импорттаймыз:

sys импортынан *

импорттау os

кездейсоқ импорттау

хэшлибті импорттау

Содан кейін біз пароль хэші мен жалған файлдарды орналастыратын қалта жасаймыз:

көріңіз: егер os.path.exists болмаса ('жұмыс үстелі/safesetup'):

os.mkdir ('жұмыс үстелі/safesetup/')

OSError қоспағанда:

басып шығару («Қалта жасау қатесі»)

Бұл код Safesetup деп аталатын қалта жасайды (егер ол бұрыннан бар болса).

Осыдан кейін біз парольді орнатып, 1 -ден 100 -ге дейінгі кездейсоқ санды жасайтын боламыз, бұл біздің қолдан жасалған файлдарды шарлау үшін:

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

n = кездейсоқ.рандинт (1, 101)

Енді бізде пароль мен файлдың нөмірі бар болғандықтан, біз қауіпсіз орнатудың ішінде 99 қолдан файлдар мен құпиясөз хэшін қамтитын бір нақты файл құрамыз:

(101) ауқымындағы х үшін: егер (x! = n):

f = ашық ((«жұмыс үстелі/safesetup/»+str (x)), «w+»)

f.close ()

басқа:

пароль = hashlib.sha256 (пароль).hexdigest ()

f = ашық ((«жұмыс үстелі/safesetup/»+str (x)), «w+»)

f.write (құпия сөз)

f.close ()

басып шығару (n)

Нақты файл n бүтін сан деп аталады. Бұл файл sha256 алгоритмін қолданғаннан кейін біздің парольді қамтиды (бұл хэш алгоритмі криптовалютада, әсіресе Bitcoin -де кеңінен қолданылады).

N дегенді есте сақтаңыз (ол консольде басылады), себебі бұл пароль сияқты маңызды.

Бұл біздің орнату бағдарламамызға қажет нәрсе, сондықтан біз енді шифрлау/шифрды ашу бағдарламасына көшеміз.

2 -қадам: шифрлау/шифрды ашу файлы

Шифрлау/шифрды ашу файлы
Шифрлау/шифрды ашу файлы
Шифрлау/шифрды ашу файлы
Шифрлау/шифрды ашу файлы
Шифрлау/шифрды ашу файлы
Шифрлау/шифрды ашу файлы

Негізгі файлды орнату бөлімі тәуелділікті импорттайды, енгізілген құпия сөзді хэширлейді және енгізілген файл нөмірін қолдана отырып, нақты құпия сөз хэшін шығарады.

Біріншіден, тәуелділіктер:

sys импортынан *импорттау os

pyAesCrypt импорттау

хэшлибті импорттау

Содан кейін енгізілген парольді хэширлеу:

пароль = argv [1].encode ('utf-8') пароль = hashlib.sha256 (пароль).hexdigest ()

Ақырында, хэшті құпия сөзді алу:

file_key = str (argv [2]) хэш = ашық ((«жұмыс үстелі/safesetup/» + file_key), («r +»)). оқу ()

Шифрлау файлының екінші бөлімі хэштерді салыстырады, салыстырудың дұрыстығын анықтайды және AESCrypt python кітапханасын пайдаланып, сіздің файлды шифрлайды немесе шифрын шешеді. Бұл кодтың үлкен бөлігі, бірақ мен оны бұзамын:

if (пароль == хэш): басып шығару («Құпия сөз қабылданды»)

bufferSize = 64 * 1024

операция = str (енгізу («Сіз файлдарды шығарып жатырсыз ба немесе шифрлайсыз ба? (r немесе e)»)))

егер (операция == 'r'):

file_name = str (енгізу («Шығарылатын файл:»))

pyAesCrypt.decryptFile ((file_name + «.aes»), file_name, password, bufferSize)

os.remove ((file_name + «.aes»))

элиф (операция == 'e'):

file_name = str (енгізу («Шифрланатын файл:»))

pyAesCrypt.encryptFile (file_name, (file_name + «.aes»), құпия сөз, bufferSize)

os.remove (file_name)

басқа:

басып шығару («Қате: қате енгізу»)

басқа:

басып шығару («Рұқсат жоқ»)

Бірінші if операторы хэшталған құпия сөздердің сәйкес келетінін анықтайды. Егер олар осылай жасаса, файлдарды шифрлауды немесе шифрланған файлдарды шығаруды қалайсыз ба деп сұрайды. Енгізуге байланысты ол берілген файлды шифрлайды немесе шифрын ашады. Файл атауын беруді сұрағанда, егер файл python бағдарламасымен бір каталогта болмаса, жолды көрсетіңіз. Бағдарлама файлды бұрынғы күйінде жояды, оны шифрланған.aes файлымен алмастырады немесе шифрын шешіп, оны бастапқы файлмен алмастырады.

Болашақта мен мұны Python OpenCV кітапханасының көмегімен бетті тануды қосу үшін жаңарта аламын, бірақ әзірге құпия сөздер жеткілікті болады.

3 -қадам: файлдармен жұмыс

Орнату файлын іске қосу үшін мына қадамдарды орындаңыз:

1. Терминалды теріңіз:

python3 каталогы/setupname.py құпия сөзі (каталогты, орнату атауын және құпия сөзді тиісті мәндермен ауыстыру)

2. Терминал сіздің файл нөміріңізді шығарады. Осыны сақтаңыз.

Шифрлау/шифрды ашу бағдарламасын іске қосу үшін мына қадамдарды орындаңыз:

1. Терминалды теріңіз:

python3 каталогы/filename.py құпия сөзінің нөмірі (каталогты, файл атауын, құпия сөзді және файл нөмірін тиісті мәндермен ауыстыру)

2. Содан кейін терминал сіздің құпия сөзіңізді қабылдайды немесе қабылдамайды. Егер қабылданбаса, қайталап көріңіз және дұрыс мәндерді енгізгеніңізге көз жеткізіңіз. Рұқсат берілгеннен кейін терминал сізден файлды шифрлау немесе файлды шығарып алуды сұрайды. Файлды шифрлау үшін e деп теріңіз және шифрланған файлды алу үшін r деп теріңіз.

3. Содан кейін сізден файл атауын енгізу сұралады. Файл каталогын, атауын, сонымен қатар файл кеңейтімін беруді ұмытпаңыз. Алайда, егер сіз файлдың шифрын шешетін болсаңыз, кеңейтімнің.aes бөлігін термеңіз, себебі бұл үшін код есептеледі.

4. Содан кейін бағдарлама берілген файлды шифрлайды немесе шифрын шешеді және файлды бұрынғы күйінде жояды (шифрланған немесе шифрланған файлды сақтайды).

Воила! Мұны нұсқаулыққа айналдырғаныңыз үшін рахмет, мен код оқулықтарын оқу ең қызықты нәрсе емес екенін білемін. Python файлдары осы қадамға қосылады, бұл сізге сурет бергісі келетіндер үшін. Тағы да, оқығаныңыз үшін рахмет және сізге алдағы кодтау жұмыстарында сәттілік тілеймін.

Ұсынылған: