Sisukord:

Elektrooniline rahakott: 3 sammu
Elektrooniline rahakott: 3 sammu

Video: Elektrooniline rahakott: 3 sammu

Video: Elektrooniline rahakott: 3 sammu
Video: Jaguar E-Pace 2024, Juuni
Anonim
Elektrooniline rahakott
Elektrooniline rahakott

MÄRKUS. Mul on nüüd Instructables, mis pakuvad Arduino koodi RC522 ja PN532 jaoks.

Oma eelmises postituses kirjeldasin üksikasjalikult MFRC522 ja PN532 RFID moodulitega suhtlemise põhitõdesid, et lugeda/kirjutada andmeid Mifare Classic 1k siltidelt. Selles postituses astun sammu edasi ja näitan, kuidas neid mooduleid kasutada siltidest elektroonilise rahakoti loomiseks. Nagu eelmises postituses, on see ka esmane rakendus, kuid see peaks andma aluse mitmesugustele rakendustele, mis nõuavad suurendamise/vähendamise või arvutamise funktsioone.

1. samm: andmete terviklikkus

Elektroonilise rahakoti puhul on alati mure, et keegi võib krediiti lisada ilma selle eest maksmata. Samuti on murettekitav, et märgendi krediit võib andmete kirjutamise ajal tahtmatult rikutud saada. Andmetele juurdepääsuks on vaja kasutada märgendivõtit, nii et märgendi esmase lähtestamise korral on vaja vaikevõtit muuta. Internetis on artikleid, mis räägivad sildi häkkimisest isegi siis, kui te võtit ei tea, kuid see tehnika pole triviaalne. Ma ei soovitaks neid silte oma pangakonto jaoks kasutada, kuid need on piisavalt head paljude vähem riskantsete rakenduste jaoks.

Andmete riknemise tõenäosus on suhteliselt väike, kuid tarkvara peaks suutma vähemalt põhijuhtumit käsitleda. See protsess hõlmab kahte sammu, millest esimene on korruptsiooni tuvastamine. Selles projektis käsitletakse nii krediidiväärtuse kui ka krediidiväärtuse 1 täiendi salvestamist. See võimaldab väärtusi lihtsalt võrrelda. Teise sammuna tuleb salvestada nii krediidiväärtuse kui ka selle täienduse varundatud versioon. See võimaldab taastamistoimingut, kui esimene krediidikomplekt rikutakse. Kui mõlemad komplektid on rikutud, üritab tarkvara märgendit taasalustada, mille tulemusel kaotatakse kõik krediidid.

Samm: riistvara

Riistvara
Riistvara

Riistvaraühendused on näidatud ülaltoodud diagrammil. See on sama seadistus kui eelmine postitus, millele on lisatud kaks lülitit ja tõmbetakisti. Üks lüliti ei vaja tõmbetakistit, kuna see on PIC-sisendil, millel on nõrk sisse tõmbamisvõime. Praktikas oleksid mõlemad lülitid peidetud, kuna neid kasutatakse krediitide lisamiseks ja sildi lähtestamiseks. Initsialiseerimise lüliti on valikuline (käsitsi krediidi nullimiseks), kuna tarkvara saab uue sildi iseseisvalt tuvastada ja vormindada. Lülitite asemel võiks kasutada hüppajanõelu.

Samm: tarkvara

Tarkvara põhisilmusse tehti täiendusi, et võimaldada kahe lüliti lugemist ja märgendi lähtestamist nõudva seisundi tuvastamist. Nagu riistvara osas mainitud, saab sildi initsialiseerimist käsitseda lülitiga. Tarkvara saab ka kahel muul juhul käsu sildi initsialiseerida. Esiteks, kui see tuvastab uue märgendi või andmesektori ja teiseks, kui mõlemad krediidiandmete kogumid on rikutud.

Siltide autentimine nõuab sihtandmesektori jaoks võtme A kasutamist. Mifare Classic 1k siltide vaikevõti on „FF FF FF FF FF FF”, kuid seda tuleks teie rakenduse jaoks muuta. Tarkvara pakub määratlusi nii vaikevõtmele kui ka uuele võtmele (“My_Key”). Lihtsalt ühendage soovitud väärtused jaotisse „Minu_Kee”. Tarkvara üritab alati märgendit esmalt autentida, kasutades “My_Key”. Kui see ei õnnestu, kutsutakse sisse märgendi lähtestamise rutiin ja autentimiseks kasutatakse vaikevõtit. Initsialiseerimisrutiin muudab võtme väärtuseks „My_Key” ja määrab krediidid nulliks. Kui teil on vaikimisi võtmega silt ja te ei tea, mis see on, ei saa märgendit autentida. Kui see juhtub, võiksite vaikeklahvi abil kontrollida teisi andmesektoreid, et näha, kas see on saadaval. Treileriplokk, andmeplokk ja varuplokid on kõik tarkvaraloendi alguses määratletud, nii et saate neid hõlpsalt muuta.

Selle rakenduse märgendisse salvestatud andmete vorming kasutab ainult positiivseid numbreid (puudujääke ei ole lubatud) ja väärtused salvestatakse nelja baitina pakitud BCD -st (binaarselt kodeeritud kümnendkoht). See võimaldab krediidivahemikku 0 kuni 99, 999, 999 (kaks numbrit baidi kohta). Krediidiväärtus ja selle 1 täiend kasutavad ainult 8 andmebaasi 16 baidist ja ülejäänud on täidetud nullidega. Samas andmeplokis on ruumi varukoopia jaoks, kuid otsustasin, et turvalisem oleks varukoopia eraldi andmeplokki panna. Varuplokk asub andmeplokiga samas sektoris, nii et eraldi autentimist pole vaja. Veelgi turvalisemaks muutmiseks võite kaaluda varukoopia paigutamist teise andmesektorisse, kuid sellistele andmetele juurdepääsuks oleks vaja eraldi autentimisetappi.

Kui krediiti loetakse, loetakse ka täiendatud väärtus ja seejärel võrreldakse neid kahte omavahel. Mittevastavuse korral loetakse ja võrreldakse varuväärtuse/täiendi komplekti. Kui need kattuvad, eeldatakse, et varukoopia on õige ja seda kasutatakse rikutud andmete parandamiseks. Kui varukoopiad ei ühti, loetakse silt halvaks ja proovitakse see uuesti vormindada.

Kasvu- ja kahanemisväärtused on määratletud kirje esikülje lähedal ja eeldatavalt pakitud BCD -s. Rutiinid, mis suurendavad ja vähendavad, teevad seda tõhusalt 32-bitisel numbril. Matemaatika on väga lihtne, kuid nõuab rutiinide kasutamist, et kohandada iga pakitud BCD baidi ja ühe baidi vahel olevate edastuste tulemusi. See saavutatakse makrode DAA (kümnendkohanduse liitmine) ja DAS (kümnendkohanduse lahutamine) kasutades. Need makrod tagavad, et iga 4-bitine BCD number jääb alati vahemikku 0–9.

Lisaks eelmises postituses kuvatavatele sõnumitele on sellel rakendusel sõnumeid paljude täiendavate toimingute jaoks - eriti juhul, kui esineb andmevigu ja/või silt tuleb parandada või lähtestada. Krediidid kuvatakse ka enne ja pärast suurendamise/vähendamise sammu, et näeksite väärtuste muutumist.

See on selle postituse jaoks. Vaadake minu teisi elektroonikaprojekte aadressil: www.boomerrules.wordpress.com

Soovitan: