Мазмуну:
Video: Python Коопсуздукту Шифрлөө/Дешифровкалоо Программасы: 3 кадам
2024 Автор: John Day | [email protected]. Акыркы өзгөртүү: 2024-01-30 10:41
Бул Нускоодо мен сизге жөнөкөй 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 = random.randint (1, 101)
Эми бизде сырсөзүбүз жана файлдын номери бар болгондон кийин, биз Safesetup ичинде 99 муляждык файлды түзөбүз жана биздин сырсөз таштандысын камтыган бир чыныгы файл:
x үчүн диапазондо (101): if (x! = n):
f = ачык (("стол/safesetup/"+str (x)), "w+")
f.close ()
башка:
сырсөз = hashlib.sha256 (пароль).hexdigest ()
f = ачык (("стол/safesetup/"+str (x)), "w+")
f.write (сырсөз)
f.close ()
басып чыгаруу (n)
Чыныгы файл n деген бүтүн сан деп аталат. Бул файл sha256 алгоритмин колдонгондон кийин биздин сырсөздү камтыйт (бул хэш алгоритми криптовалютада, өзгөчө Биткойндо кеңири колдонулат).
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 +")). read ()
Шифрлөө файлынын экинчи бөлүмү хэштерди салыштырат, салыштыруунун аныктыгын аныктайт жана AESCrypt python китепканасын тандаган файлыңызды шифрлөө же чечмелөө үчүн колдонот. Бул коддун чоң бөлүгү, бирок мен аны бузам:
if (password == hash): басып чыгаруу ("Сырсөз кабыл алынды")
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. Андан кийин программа берилген файлды шифрлейт же чечет, жана файлды мурунку абалында жок кылат (шифрленген же шифрленген файлды сактоо).
Voila! Көрсөтмөлүү кылып койгонуңуз үчүн рахмат, мен коддорду окуу эң кызыктуу нерсе эмес экенин билем. Python файлдары бул кадамга тиркелет, муну каалагандар үчүн. Дагы бир жолу, окууңуз үчүн рахмат жана келечектеги коддоо иштериңизге ийгилик каалайм.
Сунушталууда:
Python программасы - Айлык салымы/салымы бар татаал пайыздар: 5 кадам
Python программасы - Айлык салымы/депозити менен кошулуучу пайыздар: айдын аягында ай сайын салым кошуу менен татаал пайыздарды эсептөө программасы. TheCalculatorSite.com сайтынан алынган формула: Негизги сумма үчүн пайыздар: P (1+r/n)^(nt) Сериянын келечектеги мааниси: PMT × ((((1 + r/n)^nt - 1)/(r/n))
Үйдө болуу симулятору жана коопсуздукту көзөмөлдөө түзмөгү: 6 кадам (сүрөттөр менен)
Үйдө болуу симулятору жана коопсуздукту көзөмөлдөөчү түзмөк: Бул долбоор бизге үйдөгү кыймылдарды аныктоого жана үйдөгү ар кандай бөлмөлөрдө орнотулган түзмөктөрдүн тармагын конфигурациялоого мүмкүндүк берет. бир эле учурда өзгөчөлүктөр
Жарык жана коопсуздукту көзөмөлдөө үчүн сенсор станциялары тармагы: 5 кадам (сүрөттөр менен)
Жарыктандыруу жана коопсуздукту көзөмөлдөө үчүн сенсор станциялары тармагы: Бул сенсордук станциялардын тармагы мастер/кул режиминде конфигурацияланган, сиз үйүңүздө жарыктандырууну жана коопсуздукту көзөмөлдөй аласыз. Бул сенсор станциялары (бул долбоордо Node01, Node02) yo га туташкан башкы станцияга (Node00) туташкан
Como Crear программасынын программасы Python графикалык графигинин функционалдык программасы: Sacue Unere Especifica Debajo De Ella: 6 Steps
Como Crear Un Programa De Python Que Grafique Cualquier Función Y Saque Un Área Especifica Debajo De Ella: Бул программанын жаңы функциялары сизди кызыктырат жана жок кылат, жана графикалык карталарды аныктоо үчүн атайын программаны колдонуңуз
USB дискти шифрлөө: 7 кадам
USB дискти шифрлөө: Мен TrueCrypt бекер шифрлөө куралын колдонуу менен USB дискти шифрлөө үчүн керектүү кадамдарды аткарам. Бул көрсөтмөдө мен мисал катары Windows XP системасын колдоном, бирок TrueCrypt Linux жана OS Xте да иштейт