Hardcore "fai da te" - l'ingresso al sistema operativo per NFC-map
Fai Da Te / / December 19, 2019
Fino ad ora, gli utenti dei popolari sistemi operativi desktop non hanno alcuna altra possibilità nella voce sistema operativo, ad eccezione della password. Abbastanza per sopportarlo! E 'tempo di prendere un saldatore e fare la procedura di autenticazione è paragonabile nella semplicità con accarezzando il suo gatto.
Oggi nella categoria fai da te, condivideremo capolino a Instructables modo per immettere una password per accedere al sistema operativo utilizzando NFC-card.
Fase 1: Dettagli
Abbiamo bisogno di:
- Arduino Leonardo
- Adafriut NFC Shield
- carta di NFC (viene fornito completo di Adafriut NFC Shield)
- un piccolo pezzo di filo
- una lama tagliente
- saldare
- strumento per fili di taglio e spelatura
- computer
- cavo micro-USB
Fase 2: ferro da stiro
La procedura per la creazione di un modulo hardware è molto semplice.
L'unica modifica necessaria per il funzionamento del dispositivo è quello di rompere il collegamento tra pin e pin IRQ 2. Per questo coltello a portata di mano.
Allora avete bisogno di collegare l'IRQ e 6 pin con un ponticello.
Controllare l'assenza / presenza di un contatto, è possibile utilizzare un multimetro, e per una migliore comprensione del processo di generazione e Leonardo offerta NFC-modulo qui questo breve video. Tutto è mostrato passo dopo passo e in modo molto chiaro:
Fase 3: Software
Di seguito è riportato il codice che deve essere compilato Arduino. Prima di iniziare il download è necessario fare in modo che la libreria Adafruit NFC. Per saperne di più su di esso qui.
#include
#include
#define IRQ 6 // questa traccia deve essere tagliato e riavvolto!
#define RESET 8
Adafruit_NFCShield_I2C nfc (IRQ, RESET);
//////////////////////////////////// SETUP
void setup () {
// imposta biblioteca di serie a 9600 bps
Serial.begin (9600);
// trova Adafruit RFID / NFC scudo
nfc.begin ();
uint32_t versiondata = nfc.getFirmwareVersion ();
if (! versiondata) {
Serial.print ( «Non hai trovato bordo PN53x»);
while (1); // battuta d'arresto
}
// Got ok I dati, stamparlo!
Serial.print ( «Trovato truciolo PN5»); Serial.println ((versiondata >> 24) e 0xFF, HEX);
Serial.print ( «Firmware ver. «); Serial.print ((versiondata >> 16) e 0xFF, DEC);
Serial.print ( ''); Serial.println ((versiondata >> 8) e 0xFF, DEC);
// bordo configurare per leggere i tag RFID
NFC. SAMConfig ();
Keyboard.begin (); // avviare la tastiera
}
/////////////////////////////////// LOOP
senza segno cifra = 0;
void loop () {
successo uint8_t;
uint8_t uid [] = {0, 0, 0, 0, 0, 0, 0}; // buffer per memorizzare l'UID restituita
uint8_t uidLength; // La durata del UID (4 o 7 byte seconda del tipo di carta ISO14443A)
// attesa per la carta di RFID di presentarsi!
Serial.println ( «in attesa di una scheda ISO14443A ...»);
// Attendere un tipo ISO14443A carte (Mifare, ecc). Quando si è trovato
// 'uid' sarà popolato con l'UID, e uidLength indicherà
// se l'UID è 4 byte (Mifare Classic) o 7 byte (Mifare Ultralight)
success = nfc.readPassiveTargetID (PN532_MIFARE_ISO14443A, uid, e uidLength);
uint32_t cardidentifier = 0;
if (successo) {
// trovato una carta!
Serial.print ( «Carta rilevato #»);
// girare l'UID quattro byte di un MIFARE Classic in una variabile singola #
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');
ritardo (5000); // si assicura la password non viene ripetuta
}
}
}
Una volta che il codice viene caricato, aprire il set monitor seriale a 9600 baud. Un secondo vassoio NFC-card al lettore e rimuovere. Il monitor dovrebbe visualizzare un messaggio «Carta rilevato il numero #card». Sostituire «cardidentifier ==» numero ricevuto il numero della carta di corrente in linea.
Ora cambiare la sezione di codice che è responsabile per la password. Come si può vedere, la password di default è una combinazione di «mypassword». Sostituirlo al nostro ingresso password corrente nel sistema operativo (il numero di caratteri della password viene modificata semplicemente aggiungendo / out linee con squadra «Keyboard.write).
Il riavvio del codice finale nel Arduino, e ora, non appena ci si mettono questa carta al NFC-reader, la password verrà inserito immediatamente nel campo di input. Premere Invio e gioire.
Nei commenti al progetto trovato un uomo che ha offerto per completare la serie di password di ingresso del comando finale Keyboard.write (KEY_RETURN); per eliminare la necessità di premere Invio, ma questa decisione non è stata verificata.