Hardcore "gör det själv" - ingången till operativsystemet för NFC-karta
Gör Det Själv / / December 19, 2019
Hittills gjorde användare av populära desktop operativsystem inte har någon annan möjlighet i OS posten, förutom lösenord. Tillräckligt för att uthärda det! Det är dags att plocka upp en lödkolv och göra autentiseringsproceduren är jämförbar enkelhet med strök hennes katt.
Idag i kategorin DIY, kommer vi att dela peeped på Instructables sätt att ange ett lösenord för att logga in operativsystemet med hjälp av NFC-kort.
Steg 1: Detaljer
Vi behöver:
- Arduino Leonardo
- Adafriut NFC Shield
- NFC-kort (levereras komplett med Adafriut NFC Shield)
- en liten bit av tråd
- en vass kniv
- lod
- verktyg för kapning och skalning trådar
- dator
- mikro-USB-kabel
Steg 2: järn
Tillvägagångssättet för att skapa en hårdvarumodul är mycket enkel.
Den enda modifiering som krävs för drift av anordningen är att bryta förbindelsen mellan stift och stift IRQ 2. För denna behändiga kniv.
Då måste du ansluta IRQ och 6 stift med en bygel.
Kontrollera frånvaro / närvaro av en kontakt, kan du använda en multimeter, och en tydligare förståelse för byggprocessen och Leonardo NFC-modul erbjuds här denna korta video. Allt visas steg för steg och mycket tydligt:
Steg 3: Software
Nedan är den kod som måste fyllas i Arduino. Innan du börjar hämtningen måste du se till att Adafruit NFC-biblioteket. Läs mer om det här.
#include
#include
#define IRQ 6 // detta spår måste skäras och rewired!
#define RESET 8
Adafruit_NFCShield_I2C nfc (IRQ, RESET);
//////////////////////////////////// SETUP
void setup () {
// inrättat Serial biblioteket vid 9600 bps
Serial.begin (9600);
// hitta Adafruit RFID / NFC sköld
nfc.begin ();
uint32_t versiondata = nfc.getFirmwareVersion ();
if (! versiondata) {
Serial.print ( «Inte hitta PN53x board»);
while (1); // stopp
}
// Got OK uppgifter, skriv ut!
Serial.print ( «Funnet chip PN5»); Serial.println ((versiondata >> 24) & 0xFF, HEX);
Serial.print ( «Firmware ver. «); Serial.print ((versiondata >> 16) & 0xFF, DEC);
Serial.print ( ''); Serial.println ((versiondata >> 8) & 0xFF, DEC);
// configure styrelsen att läsa RFID-taggar
NFC. SAMConfig ();
Keyboard.begin (); // initierar tangentbordet
}
/////////////////////////////////// LOOP
unsigned siffra = 0;
void slinga () {
uint8_t framgång;
uint8_t uid [] = {0, 0, 0, 0, 0, 0, 0}; // Buffer att lagra åter UID
uint8_t uidLength; // Längd på UID (4 eller 7 bitgrupper beroende på ISO14443A korttyp)
// vänta på RFID-kort för att visa upp!
Serial.println ( «Väntar på en ISO14443A kort ...»);
// vänta på en ISO14443A typ kort (Mifare, etc). När man hittat
// 'uid' kommer att befolkas med UID och uidLength indikerar
// om uid är 4 byte (Mifare Classic) eller 7 bitgrupper (Mifare Ultralight)
framgång = nfc.readPassiveTargetID (PN532_MIFARE_ISO14443A, uid, & uidLength);
uint32_t cardidentifier = 0;
if (framgång) {
// Hittade ett kort!
Serial.print ( «kort upptäcks #»);
// vrid fyra byte UID av Mifare klassiskt i en enda variabel #
cardidentifier = uid [3];
cardidentifier << = 8; cardidentifier | = uid [2];
cardidentifier << = 8; cardidentifier | = uid [1];
cardidentifier << = 8; cardidentifier | = uid [0];
Serial.println (cardidentifier);
if (cardidentifier == 606.061.173) {
Keyboard.write ( 'm');
Keyboard.write ( 'y');
Keyboard.write ( 'p');
Keyboard.write ( 'a');
Keyboard.write ( 's');
Keyboard.write ( 's');
Keyboard.write ( 'w');
Keyboard.write ( 'o');
Keyboard.write ( 'r');
Keyboard.write ( 'd');
fördröjning (5000); // ser till lösenordet inte upprepas
}
}
}
När koden är laddad öppnar serie monitor inställd på 9600 baud. En andra bricka NFC-kortet till läsaren och ta bort. Monitorn ska visa ett meddelande «kort upptäcks #card antal». Ersätt «cardidentifier ==» fick numret på den aktuella kortnumret i linje.
Nu ändrar den del av koden som är ansvarig för lösenordet. Som ni kan se, är standardlösenordet en kombination av «mittlösenord». Byt ut den till vår nuvarande lösenord inträde i operativsystemet (antalet tecken i lösenordet ändras genom att helt enkelt lägga till / ut linjer med «Keyboard.write lag).
Omstart slutkoden i Arduino, och nu, just så snart vi föra detta kortet till NFC-läsare, lösenord kommer omedelbart in i inmatningsfältet. Hit Enter och glädjas.
I kommentarer till projektet fann en man som erbjöd sig att komplettera den serie av ingångskommando lösenord final Keyboard.write (KEY_RETURN); att eliminera behovet av att tryck på Enter, men detta beslut har inte verifierats.