Мазмұны:
2024 Автор: John Day | [email protected]. Соңғы өзгертілген: 2024-01-30 10:25
Бұл нұсқаулықта мен қарапайым 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 файлдары осы қадамға қосылады, бұл сізге сурет бергісі келетіндер үшін. Тағы да, оқығаныңыз үшін рахмет және сізге алдағы кодтау жұмыстарында сәттілік тілеймін.
Ұсынылған:
Өзіңіздің SMS -хабарламаларыңыздың қауіпсіздігін қадағалайтын GPS жүйесін жасаңыз: 5 қадам (суреттермен)
Өзіңіздің SMS -хабарламаларыңыздың қауіпсіздігін қадағалайтын GPS жүйесін жасаңыз: Бұл жобада мен сізге SIM5320 3G модулін Arduino мен пьезоэлектрлік түрлендіргішті соққы сенсоры ретінде қалай біріктіру керектігін көрсетемін, ол сізге сіздің орналасқан жеріңізді жіберетін қауіпсіздікті бақылау жүйесін құру үшін. SMS арқылы қымбат көлік
Әйелдердің қауіпсіздігін қамтамасыз етудің бір түрту жүйесі: 3 қадам
Әйелдердің қауіпсіздігін қамтамасыз етудің бір жүйесі: 8051 микроконтроллерін қолданатын әйелдер қауіпсіздігінің жүйесі Қазіргі әлемде әйелдер қауіпсіздігі - бұл елдегі ең маңызды мәселе. Бүгінде әйелдер қиналады, мазалайды, ал кейде жедел көмек қажет болғанда. Міндетті мекен -жай жоқ
Arduino мен саусақ ізі сенсоры көмегімен қатты диск қауіпсіздігін жақсарту: 6 қадам
Arduino мен саусақ ізі сенсоры арқылы қатты диск қауіпсіздігін жақсарту: Бұл мақалада саусақ ізі сенсоры мен Arduino көмегімен қатты дискіде сақталған сандық деректер қауіпсіздігін қалай жақсартуға болатынын көрсеткіміз келеді. Мақаланың соңында сіз: саусақ ізі сенсорын қолдануды үйренесіз
Көптеген серверлік веб -блокаторлардың қауіпсіздігін қалай алуға болады: 3 қадам
Веб -блокаторлардың көпшілігінің қауіпсіздігіне қалай қол жеткізуге болады: Бұл менің бірінші нұсқаулығым, сондықтан шыдаңыз: Жарайды, мен сіздерге мектептерде көрген веб -блокаторларды қалай айналып өту керектігін айтамын. Сізге тек флэш -диск және бірнеше бағдарламалық жасақтаманы жүктеу қажет
USB дискісін шифрлау: 7 қадам
USB -дискіні шифрлау: Мен TrueCrypt ақысыз шифрлау құралының көмегімен USB -дискіні шифрлау үшін қажетті қадамдарды орындаймын. Бұл нұсқаулықта мен мысал ретінде Windows XP жүйесін қолданамын, бірақ TrueCrypt Linux және OS X жүйелерінде де жұмыс істейді