Hardcore „do it yourself“ - der Eingang zum Betriebssystem für NFC-Karte
Do It Yourself / / December 19, 2019
Bisher Nutzer der populären Desktop-Betriebssysteme hatten keine andere Möglichkeit in dem OS-Eintrag, mit Ausnahme des Passworts. Genug, um es zu ertragen! Es ist Zeit, einen Lötkolben und tut das Authentifizierungsverfahren zu holen ist vergleichbar in der Einfachheit mit ihrer Katze zu streicheln.
Heute in der Kategorie DIY, teilen werden wir guckten auf instructables Art und Weise, ein Passwort Login in das O mit NFC-Karte einzugeben.
Schritt 1: Details
Wir brauchen:
- Arduino Leonardo
- Adafriut NFC-Schild
- NFC-Karte (kommt komplett mit Adafriut NFC-Schild)
- ein kleines Stück Draht
- ein scharfes Messer
- Lot
- Werkzeug zum Schneiden und Abisolieren von Drähten
- Computer
- Mikro-USB-Kabel
Schritt 2: Eisen
Das Verfahren für ein Hardwaremodul zu schaffen ist sehr einfach.
Die einzige Änderung, die für den Betrieb der Vorrichtung ist die Verbindung zwischen Stift und Stift IRQ 2 zu brechen. Aus diesem handlichen Messer.
Dann müssen Sie den IRQ und 6 Pins mit einem Überbrückungskabel verbinden.
Prüfen Sie die Abwesenheit / Anwesenheit eines Kontakts können Sie mit einem Multimeter, und für ein besseres Verständnis des Build-Prozesses und Leonardo NFC-Modul bietet hier dieses kurzen Videos. Alles wird für Schritt gezeigt Schritt und sehr deutlich:
Schritt 3: Software
Unten ist der Code, der in Arduino gefüllt werden müssen. Vor dem Download müssen Sie sicherstellen, dass die Adafruit NFC-Bibliothek machen. Lesen Sie mehr darüber hier.
# include
# include
#define IRQ 6 // diese Spur muss geschnitten und neu verdrahtet sein!
#define RESET 8
Adafruit_NFCShield_I2C nfc (IRQ, RESET);
//////////////////////////////////// SETUP
Leere setup () {
// Serien Bibliothek mit 9600 bps einrichten
Serial.begin (9600);
// finden Adafruit RFID / NFC-Schild
nfc.begin ();
uint32_t versiondata = nfc.getFirmwareVersion ();
if (! versiondata) {
Serial.print ( «Haben Sie nicht gefunden PN53x Board»);
while (1); // halt
}
// Got ok Daten, drucken Sie es aus!
Serial.print ( «gefunden 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 Board lesen RFID-Tags
nfc. SAMConfig ();
Keyboard.begin (); // initiieren, um die Tastatur
}
/////////////////////////////////// LOOP
unsigned Ziffer = 0;
Hohlraumschleife () {
uint8_t Erfolg;
uint8_t uid [] = {0, 0, 0, 0, 0, 0, 0}; // Puffer zu speichern, die zurück UID
uint8_t uidLength; // Länge der UID (4 oder 7 Bytes je nach ISO14443A Kartentyp)
// Warten auf RFID-Karte zu zeigen!
Serial.println ( «Warten auf eine ISO14443A Card ...»);
// Warten auf eine ISO14443A Typ-Karten (Mifare, etc.). Wenn man gefunden
// ‚uid‘ mit der UID bevölkert wird, und uidLength zeigt an
// Wenn uid ist die 4 Bytes (Mifare Classic) oder 7 Bytes (Mifare Ultralight)
Erfolg = nfc.readPassiveTargetID (PN532_MIFARE_ISO14443A, uid, & uidLength);
uint32_t cardidentifier = 0;
if (Erfolg) {
// Fand eine Karte!
Serial.print ( «Karte erkannt #»);
// drehen Sie die vier Byte UID eines Mifare Classic in einer einzigen Variable #
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');
Verzögerung (5000); // stellt sicher, dass das Passwort nicht wiederholt
}
}
}
Sobald der Code geladen wird, öffnen Sie den seriellen Monitor auf 9600 Baud. Ein zweites Fach NFC-Karte an den Leser und zu entfernen. Der Monitor sollte eine Meldung angezeigt «Karte #card Nummer erkannt». Ersetzen «cardidentifier ==» empfangene Nummer der aktuellen Kartennummer in Zeile.
Ändern Sie nun den Abschnitt des Codes, die für das Passwort verantwortlich ist. Wie Sie sehen können, ist das Standard-Passwort eine Kombination aus «mypassword». Ersetzen Sie es in unserem aktuellen Passworteingabe in das Betriebssystem (die Anzahl der Zeichen des Passworts durch einfaches Hinzufügen / out Linien mit «Keyboard.write Team geändert wird).
Ein Neustart des endgültigen Code in der Arduino, und jetzt, nur so schnell, wie wir diese Karte auf den NFC-Leser zu bringen, wird das Passwort sofort in das Eingabefeld eingegeben werden. Drücken Sie die Eingabetaste und sich freuen.
In den Kommentaren zu dem Projekt fand einen Mann, der die Reihe von Befehlseingabe Passwort final Keyboard.write (KEY_RETURN) zur Ergänzung angeboten werden; zu eliminieren die Notwendigkeit, drücken Sie die Eingabetaste, aber diese Entscheidung nicht überprüft wurde.