Hardcore « do it yourself » - l'entrée du système d'exploitation pour NFC-carte
Do It Yourself / / December 19, 2019
Jusqu'à présent, les utilisateurs de systèmes d'exploitation de bureau populaires n'ont pas d'autre possibilité dans l'entrée du système d'exploitation, à l'exception du mot de passe. Assez pour supporter! Il est temps de ramasser un fer à souder et faire la procédure d'authentification est comparable dans la simplicité avec caressant son chat.
Aujourd'hui, dans la catégorie de bricolage, nous partagerons épié à Instructables façon d'entrer un mot de passe pour se connecter au système d'exploitation à l'aide de carte NFC.
Étape 1: Détails
Nous avons besoin de:
- Arduino Leonardo
- Adafriut NFC Shield
- carte NFC (est livré avec Adafriut NFC Shield)
- un petit morceau de fil
- un couteau bien aiguisé
- soudure
- outil de fils de coupe et de dénudage
- ordinateur
- micro-câble USB
Étape 2: fer
La procédure de création d'un module matériel est très simple.
La seule modification nécessaire pour le fonctionnement du dispositif est de rompre la liaison entre la broche et la broche IRQ 2. Pour ce couteau à portée de main.
Ensuite, vous devez connecter l'IRQ et 6 broches avec un fil de cavalier.
Vérifier l'absence / présence d'un contact, vous pouvez utiliser un multimètre, et pour une meilleure compréhension du processus de construction et Leonardo offre-module NFC ici cette courte vidéo. Tout est montré étape par étape et très clairement:
Étape 3: Logiciel
Ci-dessous le code qui doit être rempli Arduino. Avant de commencer le téléchargement, vous devez vous assurer que la bibliothèque NFC Adafruit. En savoir plus sur ce ici.
#include
#include
#define IRQ 6 // cette trace doit être coupé et recâbler!
#define RESET 8
Adafruit_NFCShield_I2C nfc (IRQ, RAZ);
//////////////////////////////////// SETUP
void setup () {
// Configurer la bibliothèque série à 9600 bps
Serial.begin (9600);
// trouver bouclier Adafruit RFID / NFC
nfc.begin ();
uint32_t versiondata = nfc.getFirmwareVersion ();
if (! versiondata) {
Serial.print ( «Vous ne trouvez pas PN53x carte»);
tandis que (1); // arrêt
}
// Got données ok, imprimez-le!
Serial.print ( «puce Trouvé 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);
// carte de configuration à lire les étiquettes RFID
nfc. SAMConfig ();
Keyboard.begin (); // lancer le clavier
}
/////////////////////////////////// LOOP
chiffre = 0 non signé;
void loop () {
succès uint8_t;
uint8_t uid [] = {0, 0, 0, 0, 0, 0, 0}; // tampon pour stocker l'UID retourné
uint8_t uidLength; // Durée de l'UID (4 ou 7 octets selon le type de carte ISO14443A)
// attente pour la carte RFID pour montrer!
Serial.println ( «En attente d'une carte ISO14443A ...»);
// Attendez une carte de type ISO14443A (Mifare, etc.). Quand on se trouve
// « uid » sera rempli avec l'UID et uidLength indiquera
// si le fluide est de 4 octets (Mifare Classic) ou 7 octets (Mifare Ultralight)
= succès nfc.readPassiveTargetID (PN532_MIFARE_ISO14443A, uid, et uidLength);
uint32_t cardidentifier = 0;
si (succès) {
// a trouvé une carte!
Serial.print ( «carte détectée #»);
// tour l'UID quatre octets d'un Mifare classique en une seule variable #
cardidentifier = uid [3];
cardidentifier << = 8; cardidentifier | = uid [2];
cardidentifier << = 8; cardidentifier | = uid [1];
cardidentifier << = 8; cardidentifier | = uid [0];
Serial.println (cardidentifier);
if (cardidentifier == 606061173) {
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');
retard (5000); // fait que le mot de passe ne se répète pas
}
}
}
Une fois que le code est chargé, ouvrez l'ensemble du moniteur série à 9600 bauds. Un second plateau NFC-carte au lecteur et à enlever. Le moniteur affiche un message «carte détecté numéro #card». Remplacer «cardidentifier ==» numéro reçu du numéro de carte actuelle en ligne.
Maintenant, changez la section du code qui est responsable du mot de passe. Comme vous pouvez le voir, le mot de passe par défaut est une combinaison de «mypassword». Remplacer à notre entrée de mot de passe actuel dans le système d'exploitation (le nombre de caractères du mot de passe est modifié en ajoutant simplement / des lignes avec l'équipe «Keyboard.write).
Redémarrage le code final dans l'Arduino, et maintenant, dès que nous apportons cette carte au NFC lecteur, le mot de passe sera immédiatement entré dans le champ de saisie. Appuyez sur Entrée et réjouissez-vous.
Dans ses commentaires au projet trouvé un homme qui a offert de compléter la série de mots de passe d'entrée de commande finale Keyboard.write (KEY_RETURN); d'éliminer la nécessité d'appuyer sur Entrée, mais cette décision n'a pas été vérifiée.