Мазмұны:

Электрондық әмиян: 3 қадам
Электрондық әмиян: 3 қадам

Бейне: Электрондық әмиян: 3 қадам

Бейне: Электрондық әмиян: 3 қадам
Бейне: Жаңа КАЗАКША КИНО / Әмиян 2024, Қараша
Anonim
Электрондық әмиян
Электрондық әмиян

ЕСКЕРТПЕ: Менде RC522 және PN532 үшін Arduino кодын ұсынатын нұсқаулықтар бар.

Алдыңғы жазбамда Mifare Classic 1k тегтерінен деректерді оқу/жазу үшін MFRC522 және PN532 RFID модульдерімен байланысу негіздерін егжей -тегжейлі айтып бердім. Бұл жазбада мен оны бір қадам алға жылжытамын және тегтерден электронды әмиян жасау үшін осы модульдерді қалай қолдану керектігін көрсетемін. Алдыңғы жазбадағыдай, бұл негізгі іске асыру ретінде ұсынылған, бірақ көбейту/азайту немесе есептеу функцияларын қажет ететін әр түрлі қосымшаларға негіз болуы керек.

1 -қадам: деректердің тұтастығы

Электрондық әмиян үшін біреу оларды төлемей -ақ несие қоса алады деген алаңдаушылық туындайды. Деректерді жазу кезінде тегтегі несиелер байқаусызда бұзылуы мүмкін деген алаңдаушылық бар. Деректерге қол жеткізу тегтер кілтін қолдануды қажет етеді, сондықтан тег бірінші инициализацияланған кезде әдепкі кілтті өзгерту қажет. Интернетте мақалалар бар, олар сіз кілтті білмесеңіз де, тегті қалай бұзуға болатынын айтады, бірақ бұл технология маңызды емес. Мен бұл тегтерді сіздің банктік шотыңызға пайдалануды ұсынбаймын, бірақ олар тәуекелділігі аз қосымшалар үшін жеткілікті.

Деректерді бұзу ықтималдығы салыстырмалы түрде аз, бірақ бағдарламалық қамтамасыз ету кем дегенде негізгі жағдайды өңдей алуы керек. Бұл процесс екі кезеңнен тұрады, бірінші кезекте сыбайлас жемқорлықты анықтау. Бұл жобада несие құнын, сонымен қатар несие құнының 1 -қосымшасын сақтау арқылы өңделеді. Бұл құндылықтарды қарапайым салыстыруға мүмкіндік береді. Екінші қадам - несие құнының да, оны толықтырудың да резервтік нұсқасын сақтау. Бұл несиелердің бірінші жиынтығы бүлінген жағдайда қалпына келтіру операциясын жүргізуге мүмкіндік береді. Егер екі жинақ та бүлінген болса, онда бағдарламалық жасақтама барлық кредиттердің жоғалуына әкелетін тегті қайта орнатуға тырысады.

2 -қадам: Жабдық

Аппараттық құрал
Аппараттық құрал

Аппараттық қосылулар жоғарыдағы диаграммада көрсетілген. Бұл екі қосқыш пен тартылатын резистор қосылған алдыңғы пост сияқты. Бір коммутатор тартылатын резисторды қажет етпейді, себебі ол PIC кірісінде, тартылу мүмкіндігі әлсіз. Іс жүзінде екі қосқыш та жасырылады, себебі олар несие қосу үшін және тегті инициализациялау үшін қолданылады. Инициализация коммутаторы міндетті емес (қолмен несие нөлін жасау үшін), себебі бағдарламалық қамтамасыз ету жаңа тегті өз бетінше анықтай және баптай алады. Коммутаторлардың орнына секіргіш түйреуіштерді қолдануға болады.

3 -қадам: Бағдарламалық қамтамасыз ету

Бағдарламалық жасақтаманың негізгі циклына екі қосқышты оқуға және тегтерді инициализациялауды қажет ететін жағдайды анықтауға мүмкіндік беретін толықтырулар енгізілді. Аппараттық бөлімде айтылғандай, тегтерді инициализациялау коммутатормен қолмен басқарылуы мүмкін. Бағдарламалық жасақтама басқа екі жағдайда тегтерді инициализациялауды басқара алады. Біріншіден, егер ол жаңа тегті немесе деректер секторын анықтаса, екіншіден, егер несиелік деректердің екі жиынтығы да бүлінген болса.

Тегтердің аутентификациясы мақсатты деректер секторы үшін «А» кілтін қолдануды талап етеді. Mifare Classic 1k тегтері үшін әдепкі кілт - «FF FF FF FF FF FF», бірақ оны сіздің қосымшаңыз үшін өзгерту керек. Бағдарлама әдепкі кілтке де, жаңа кілтке де анықтама береді («My_Key»). «My_Key» -ге кез келген мәндерді қосыңыз. Бағдарламалық қамтамасыз ету әрқашан тегті «My_Key» көмегімен растауға тырысады. Егер бұл орындалмаса, онда тегті инициализациялау процедурасы шақырылады және түпнұсқалық растама үшін әдепкі кілт қолданылады. Инициализация процедурасы кілтті «My_Key» етіп өзгертеді және несиені нөлге теңестіреді. Егер сізде әдепкі емес кілт бар тег болса және оның не екенін білмесеңіз, онда тегті аутентификациялау мүмкін емес. Егер бұл орын алса, сіз басқа дерек секторларын әдепкі кілт арқылы тексеріп, олардың бар -жоғын білгіңіз келуі мүмкін. Трейлер блогы, Деректер блогы және Сақтық көшірме блоктары бағдарламалық қамтамасыз ету тізімінің басында анықталған, сондықтан оларды оңай өзгертуге болады.

Бұл қосымшаның тегінде сақталған деректердің форматы тек оң сандарды қолданады (дефицитке жол берілмейді) және мәндер BCD (Binary Coded Decimal) төрт байт түрінде сақталады. Бұл 0 -ден 99, 999, 999 -ға дейінгі несие диапазонына мүмкіндік береді (байт үшін екі сан). Несие мәні мен оның 1 -қосымшасы бір деректер блогындағы 16 байттың 8 -ін ғана қолданады, ал қалғандары нөлдермен толтырылады. Деректер блогында резервтік көшірме үшін орын бар, бірақ мен сақтық көшірмені бөлек деректер блогына қою қауіпсіз деп шештім. Резервтік блок деректер блогымен бір секторда орналасқан, сондықтан бөлек аутентификация қажет емес. Одан да қауіпсіз болу үшін сақтық көшірмені басқа деректер секторына қоюды қарастыруға болады, бірақ бұл деректерге қол жеткізу үшін жеке аутентификация қадамы қажет болады.

Кредиттер оқылған кезде толықтырылған мән де оқылады, содан кейін екеуі бір -бірімен салыстырылады. Егер сәйкессіздік болса, онда резервтік мән/толықтыру жиынтығы оқылады және салыстырылады. Егер олар сәйкес келсе, онда сақтық көшірме дұрыс деп есептеледі және бүлінген деректерді жөндеу үшін қолданылады. Егер резервтік көшірмелер сәйкес келмесе, онда тег нашар деп есептеледі және оны қайта инициализациялау әрекеті жасалады.

Өсу мен кему мәндері листингтің алдыңғы жағына жақын анықталған және BCD қаптамасында болады деп күтілуде. Өсу мен азайтуды жүзеге асыратын әдеттер мұны 32 биттік сан бойынша тиімді жасайды. Математика өте қарапайым, бірақ әрбір BCD байтында және бір байттан екіншісіне тасымалдау нәтижелерін реттеу үшін әдеттегі әдістерді қолдануды талап етеді. Бұл DAA (Decimal Adjust Addition) және DAS (Decimal Adjust Subtraction) макростарының көмегімен жүзеге асады. Бұл макростар әр 4 биттік BCD цифры әрқашан 0-9 аралығында болатынына көз жеткізеді.

Алдыңғы жазбадағы дисплей хабарламаларынан басқа, бұл қосымшада көптеген қосымша қадамдарға арналған хабарламалар бар - әсіресе егер деректер қателері болса және/немесе тегті түзету немесе инициализациялау қажет болса. Кредиттер сонымен қатар өсу/кему қадамына дейін және кейін көрсетіледі, осылайша сіз мәндердің өзгеруін көре аласыз.

Бұл бұл пост үшін. Басқа электроника жобаларымды мына жерден қараңыз: www.boomerrules.wordpress.com

Ұсынылған: