INHOUDSOPGAWE:

Elektroniese beursie: 3 stappe
Elektroniese beursie: 3 stappe

Video: Elektroniese beursie: 3 stappe

Video: Elektroniese beursie: 3 stappe
Video: Йога для начинающих дома с Алиной Anandee #3. Здоровое гибкое тело за 40 минут. Продвинутый уровень. 2024, Junie
Anonim
Elektroniese beursie
Elektroniese beursie

LET WEL: ek het nou instruksies wat Arduino -kode bied vir die RC522 en PN532.

In my vorige pos het ek die basiese beginsels uiteengesit vir kommunikasie met die MFRC522 en PN532 RFID -modules om data van Mifare Classic 1k -etikette te lees/skryf. In hierdie pos neem ek dit 'n stap verder en wys ek hoe u die modules kan gebruik om 'n elektroniese beursie uit die etikette te skep. Net soos met die vorige pos, word dit as 'n basiese implementering voorgestel, maar dit moet 'n basis bied vir 'n verskeidenheid toepassings wat funksies verhoog/verlaag of tel.

Stap 1: Data -integriteit

Vir 'n elektroniese beursie is daar altyd kommer dat iemand krediete kan byvoeg sonder om daarvoor te betaal. Daar is ook kommer dat die krediete op die etiket per ongeluk beskadig kan raak tydens 'n data -skryf. Datatoegang vereis dat u die etiketsleutel gebruik, dus is dit nodig om die standaard sleutel te verander wanneer die merker eers geïnitialiseer word. Daar is artikels aanlyn wat praat oor hoe om 'n tag te hack, selfs al ken jy nie die sleutel nie, maar die tegniek is nie triviaal nie. Ek sou nie aanbeveel om hierdie etikette vir u bankrekening te gebruik nie, maar dit is goed genoeg vir baie minder riskante toepassings.

Die waarskynlikheid van datakorrupsie is relatief klein, maar die sagteware behoort ten minste die basiese saak te kan hanteer. Hierdie proses behels twee stappe, met die eerste stap om bloot die korrupsie op te spoor. In hierdie projek word dit hanteer deur beide die kredietwaarde sowel as 'n 1 se aanvulling van die kredietwaarde te stoor. Dit maak 'n eenvoudige vergelyking van die waardes moontlik. Die tweede stap is om 'n rugsteunweergawe van die kredietwaarde en die aanvulling daarvan op te slaan. Dit maak 'n hersteloperasie moontlik as die eerste stel krediete beskadig raak. As beide stelle beskadig is, probeer die sagteware om die etiket te herinitialiseer, wat alle krediete verloor.

Stap 2: Hardeware

Hardeware
Hardeware

Die hardewareverbindings word in die diagram hierbo getoon. Dit is dieselfde opstelling as die vorige pos met die toevoeging van twee skakelaars en 'n optrekweerstand. Een skakelaar benodig nie 'n optrekweerstand nie, want dit is op 'n PIC-ingang met 'n swak ingeboude vermoë. In die praktyk sou beide skakelaars verborge wees omdat dit gebruik word vir die toevoeging van krediete en vir die initialisering van 'n merker. Die inisialiseer -skakelaar is opsioneel (om handmatige krediet -nulstelling te doen) omdat die sagteware 'n nuwe merker op sy eie kan opspoor en inisieer. Springpenne kan in plaas van skakelaars gebruik word.

Stap 3: sagteware

Byvoegings tot die hooflus in die sagteware is gemaak om die twee skakelaars te kan lees en om 'n toestand op te spoor wat die initialisering van die etiket vereis. Soos in die hardeware -afdeling genoem, kan die inisialisering van etikette met die hand beveel word met 'n skakelaar. Die sagteware kan ook in twee ander gevalle 'n etiketinitialisering beveel. Eerstens, as dit 'n nuwe etiket of datasektor opspoor en tweedens, as beide stelle kredietdata beskadig is.

Verifikasie van etikette vereis die gebruik van 'sleutel A' vir die doeldatasektor. Die standaard sleutel vir die Mifare Classic 1k -etikette is "FF FF FF FF FF FF", maar dit moet vir u toepassing verander word. Die sagteware bied definisies vir beide die standaard sleutel en 'n nuwe sleutel ("My_Key"). Sluit net die waardes wat u wil in "My_Key" in. Die sagteware probeer altyd om die etiket eers met 'My_Key' te staaf. As dit misluk, word die roetine om die etiket te initialiseer genoem, en word die standaard sleutel vir verifikasie gebruik. Die inisialiseringsroetine verander die sleutel na “My_Key” en stel die krediete op nul. As u 'n etiket met 'n nie-standaard sleutel het en u nie weet wat dit is nie, kan die etiket nie geverifieer word nie. As dit gebeur, wil u moontlik die ander datasektore met die versteksleutel nagaan of daar een beskikbaar is. Die sleepwa-, data- en rugsteunblokke word almal aan die begin van die sagteware -lys gedefinieer, sodat u dit maklik kan verander.

Die formaat vir data wat in die etiket vir hierdie toepassing gestoor is, gebruik slegs positiewe getalle (geen tekorte toegelaat nie) en waardes word gestoor as vier grepe verpakte BCD (Binary Coded Decimal). Dit maak voorsiening vir 'n kredietbereik van 0 tot 99, 999, 999 (twee syfers per greep). Die kredietwaarde en sy 1 -aanvulling gebruik slegs 8 van die 16 grepe in 'n enkele datablok, en die res is gevul met nulle. Daar is plek in dieselfde datablok vir die rugsteunkopie, maar ek het besluit dat dit veiliger sou wees om die rugsteun in 'n aparte datablok te plaas. Die rugsteunblok is in dieselfde sektor as die datablok, dus is 'n aparte verifikasie nie nodig nie. Om nog veiliger te wees, kan u dit oorweeg om die rugsteun in 'n ander datasektor te plaas, maar dan is 'n aparte verifikasie -stap nodig om toegang tot die data te verkry.

As die krediete gelees word, word die aangevulde waarde ook gelees en dan word die twee met mekaar vergelyk. As daar 'n wanverhouding is, word die rugsteun van waarde/komplement gelees en vergelyk. As dit ooreenstem, word aanvaar dat die rugsteun korrek is en word dit gebruik om die beskadigde data te herstel. As die rugsteunkopieë nie ooreenstem nie, word die etiket as sleg beskou en word gepoog om dit weer te begin.

Die toename en afname waardes word gedefinieer naby die voorkant van die notering en sal na verwagting in verpakte BCD wees. Die roetines wat die aan- en afnemings doen, doen dit effektief op 'n 32-bis nommer. Die wiskunde is baie eenvoudig, maar vereis die gebruik van roetines om die resultate aan te pas vir elke BCD -byte en van die een byte na die volgende. Dit word bewerkstellig deur die gebruik van makros DAA (desimale aanpassing byvoeging) en DAS (desimale aanpassing aftrekking). Hierdie makros sorg dat elke 4-bis BCD-syfer altyd binne die bereik van 0-9 bly.

Benewens die vertoonboodskappe in die vorige pos, bevat hierdie toepassing boodskappe vir baie van die bykomende stappe - veral as daar datafoute is en/of die etiket reggemaak of geïnitialiseer moet word. Die krediete word ook voor en na 'n toename/afname stap vertoon, sodat u die waardes kan sien verander.

Dit is dit vir hierdie pos. Kyk na my ander elektroniese projekte by: www.boomerrules.wordpress.com

Aanbeveel: