Obsah:

Elektronická peňaženka: 3 kroky
Elektronická peňaženka: 3 kroky

Video: Elektronická peňaženka: 3 kroky

Video: Elektronická peňaženka: 3 kroky
Video: Mobilní Bitcoin peněženka Mycelium | Bitcoin krok za krokem jednoduše a lidsky #5.3 2024, Jún
Anonim
Elektronická peňaženka
Elektronická peňaženka

POZNÁMKA: Teraz mám návod, ktorý ponúka kód Arduino pre RC522 a PN532.

Vo svojom predchádzajúcom príspevku som podrobne popísal základy komunikácie s modulmi RFID MFRC522 a PN532 na čítanie/zápis údajov zo značiek Mifare Classic 1k. V tomto príspevku to posúvam o krok ďalej a ukazujem, ako použiť tieto moduly na vytvorenie elektronickej peňaženky zo značiek. Rovnako ako v predchádzajúcom príspevku je tento predstavený ako základná implementácia, ale mal by poskytnúť základ pre rôzne aplikácie, ktoré vyžadujú funkcie zvýšenia/zníženia alebo zúčtovania.

Krok 1: Integrita údajov

V prípade elektronickej peňaženky vždy existuje obava, že niekto môže pridať kredity bez toho, aby za ne zaplatil. Existuje tiež obava, že kredity na značke sa môžu počas zápisu údajov neúmyselne poškodiť. Prístupy k údajom vyžadujú použitie kľúča tagu, takže pri prvej inicializácii tagu je potrebné zmeniť predvolený kľúč. Na internete sú články, ktoré hovoria o tom, ako hacknúť značku, aj keď nepoznáte kľúč, ale táto metóda nie je triviálna. Neodporúčam používať tieto značky pre váš bankový účet, ale sú dosť dobré pre mnoho menej rizikových aplikácií.

Pravdepodobnosť poškodenia údajov je relatívne malá, ale softvér by mal byť schopný zvládnuť aspoň základný prípad. Tento proces zahŕňa dva kroky, pričom prvým krokom je jednoduché odhalenie korupcie. V tomto projekte sa jedná o ukladanie kreditnej hodnoty, ako aj doplnku kreditnej hodnoty 1. To umožňuje jednoduché porovnanie hodnôt. Druhým krokom je uloženie záložnej verzie kreditnej hodnoty a jej doplnku. To umožňuje operáciu obnovy, ak dôjde k poškodeniu prvej sady kreditov. Ak sú obe sady poškodené, softvér sa pokúsi znova inicializovať značku, čo spôsobí stratu všetkých kreditov.

Krok 2: Hardvér

Hardvér
Hardvér

Hardvérové pripojenia sú znázornené na obrázku vyššie. Toto je rovnaké nastavenie ako v predchádzajúcom príspevku s pridaním dvoch prepínačov a výsuvného odporu. Jeden prepínač nevyžaduje pull-up odpor, pretože je na vstupe PIC, ktorý má v sebe zabudovanú slabú schopnosť pull-upu. V praxi by boli oba prepínače skryté, pretože sa používajú na pridávanie kreditov a na inicializáciu značky. Inicializačný prepínač je voliteľný (na ručné vynulovanie kreditu), pretože softvér dokáže sám detekovať a inicializovať nový štítok. Namiesto prepínačov je možné použiť prepojovacie kolíky.

Krok 3: Softvér

Dodatky k hlavnej slučke v softvéri boli urobené tak, aby umožňovali čítanie dvoch prepínačov a detekciu stavu vyžadujúceho inicializáciu značky. Ako je uvedené v sekcii hardvéru, inicializáciu značky je možné manuálne zadať pomocou prepínača. Softvér môže tiež zadať inicializáciu značky v dvoch ďalších prípadoch. Po prvé, ak zistí nový tag alebo dátový sektor, a po druhé, ak sú poškodené obe sady úverových údajov.

Autentifikácia tagov vyžaduje použitie „kľúča A“pre cieľový dátový sektor. Predvolený kľúč pre značky Mifare Classic 1k je „FF FF FF FF FF FF FF“, ale mal by byť pre vašu aplikáciu zmenený. Tento softvér poskytuje definície pre predvolený aj pre nový kľúč („My_Key“). Do „My_Key“jednoducho vložte požadované hodnoty. Softvér sa vždy pokúsi najskôr autentifikovať značku pomocou „My_Key“. Ak sa to nepodarí, zavolá sa rutina na inicializáciu značky a na autentifikáciu sa použije predvolený kľúč. Inicializačná rutina zmení kľúč na „My_Key“a nastaví kredity na nulu. Ak máte značku s iným ako predvoleným kľúčom a neviete, čo to je, značku nemožno overiť. Ak sa to stane, možno budete chcieť skontrolovať ostatné dátové sektory pomocou predvoleného kľúča a zistiť, či je k dispozícii. Bloky Trailer, Data a Backup sú definované na začiatku zoznamu softvéru, takže ich môžete ľahko zmeniť.

Formát údajov uložených v značke pre túto aplikáciu používa iba kladné čísla (nie sú povolené žiadne deficity) a hodnoty sú uložené ako štyri bajty zabaleného BCD (binárne kódovaný desatinný bod). To umožňuje rozsah kreditu od 0 do 99, 999, 999 (dve číslice na bajt). Kreditná hodnota a jej doplnok 1 používajú iba 8 zo 16 bajtov v jednom dátovom bloku a zvyšok je vyplnený nulami. V tom istom dátovom bloku je miesto pre záložnú kópiu, ale rozhodol som sa, že bude bezpečnejšie uložiť zálohu do samostatného dátového bloku. Záložný blok je v rovnakom sektore ako dátový blok, takže nie je potrebné samostatné overovanie. Aby ste boli ešte bezpečnejší, môžete zvážiť vloženie zálohy do iného dátového sektora, ale potom bude na prístup k týmto údajom potrebný samostatný krok autentifikácie.

Keď sa prečítajú kredity, prečíta sa aj doplnená hodnota a potom sa tieto dva porovnajú navzájom. Ak existuje nesúlad, záložná množina hodnôt/doplnkov sa načíta a porovná. Ak sa zhodujú, zálohovanie sa považuje za správne a používa sa na opravu poškodených údajov. Ak sa záložné kópie nezhodujú, značka sa považuje za zlú a pokúsi sa ju znova inicializovať.

Hodnoty prírastku a úbytku sú definované v prednej časti zoznamu a očakáva sa, že budú zabalené v BCD. Rutiny, ktoré efektívne robia prírastky a úbytky, to robia na 32-bitovom čísle. Matematika je veľmi jednoduchá, ale vyžaduje použitie rutín na úpravu výsledkov pre prenosy v rámci každého zabaleného BCD bajtu a od jedného bajtu k druhému. To sa dosahuje použitím makier DAA (sčítanie desatinných miest) a DAS (odčítanie desatinných miest). Tieto makrá zaisťujú, že každá 4-bitová číslica BCD zostane vždy v rozsahu 0-9.

Okrem zobrazovaných správ v predchádzajúcom príspevku má táto aplikácia aj správy pre mnoho ďalších krokov - najmä ak existujú chyby v údajoch a/alebo je potrebné značku opraviť alebo inicializovať. Kredity sa tiež zobrazujú pred a po kroku prírastku/úbytku, aby ste videli, ako sa hodnoty menia.

To je k tomuto príspevku všetko. Pozrite sa na moje ďalšie projekty v oblasti elektroniky na: www.boomerrules.wordpress.com

Odporúča: