Hardcore "направи си сам" - на входа на операционната система за NFC-карта
Направи си сам / / December 19, 2019
Досега потребителите на популярните десктоп операционни системи не са имали друга възможност в записа на OS, с изключение на паролата. Достатъчно, за да го издържа! Това е време да вземете поялник и да направи процедурата по идентификация е сравнима с простота с гали котката си.
Днес в категория Направи си сам на, ние ще споделим надникна в Instructables начин да въведете парола за вход към операционната система с помощта на NFC-карта.
Стъпка 1: Детайли
Имаме нужда от:
- Arduino Leonardo
- Adafriut NFC Shield
- NFC карта (снабден с NFC Adafriut Shield)
- малко парче жица
- остър нож
- спойка
- инструмент за рязане и източване проводници
- компютър
- микро-USB кабел
Етап 2: желязо
Процедурата за създаване на хардуер модул е много проста.
Единствената модификация, необходима за работа на устройството е да се прекъсне връзката между щифт и щифт IRQ 2. За този удобен нож.
След това е необходимо да се свържете прекъсването и 6 игли с джъмпер тел.
Проверете липса / наличие на контакт, можете да използвате мултицет, както и за по-ясно разбиране на процеса на изграждане и Леонардо NFC-модул офертата тук този кратък видеоклип. Всичко е показано стъпка по стъпка и много ясно:
Стъпка 3: Софтуер
По-долу е кодът, който трябва да бъде попълнен Arduino. Преди да започнете с мишката, което трябва да се уверите, че библиотеката Adafruit NFC. Прочетете повече за това тук.
#include
#include
#define IRQ 6 // тази следа трябва да бъде нарязан и окабелена!
# определят RESET 8
Adafruit_NFCShield_I2C NFC (IRQ, RESET);
//////////////////////////////////// SETUP
невалидни настройка () {
// създаде Serial библиотека на 9600 базисни пункта
Serial.begin (9600);
// намери Adafruit RFID / NFC щит
nfc.begin ();
uint32_t versiondata = nfc.getFirmwareVersion ();
ако (! versiondata) {
Serial.print ( «Не намерихте PN53x борда»);
докато (1); // спиране
}
// Got ОК данни, отпечатайте го!
Serial.print ( «Намерени чип PN5»); Serial.println ((versiondata >> 24) и 0xFF, HEX);
Serial.print ( «Firmware вер. «); Serial.print ((versiondata >> 16) и 0xFF, DEC);
Serial.print ( '.'); Serial.println ((versiondata >> 8) и 0xFF, DEC);
// конфигуриране на борда, за да прочетете RFID тагове
NFC. SAMConfig ();
Keyboard.begin (); // започване на клавиатурата
}
/////////////////////////////////// LOOP
неподписан цифра = 0;
невалидни линия () {
uint8_t успех;
uint8_t UID [] = {0, 0, 0, 0, 0, 0, 0}; // буфер за съхранение на върнатата UID
uint8_t uidLength; // Дължина на UID (4 или 7 байта в зависимост от типа ISO14443A карта)
// засада за RFID карта, за да се появи!
Serial.println ( «дочака ISO14443A Card ...»);
// Изчакайте тип ISO14443A карти един (Mifare и т.н.). Когато човек е намерена
// "UID" ще бъде попълнена с UID и uidLength ще покаже
// ако UID е 4 байта (Mifare класически) или 7 байта (Mifare Ultralight)
успех = nfc.readPassiveTargetID (PN532_MIFARE_ISO14443A, UID, и uidLength);
uint32_t cardidentifier = 0;
ако (успех) {
// Намерени карта!
Serial.print ( «Card открити #»);
// включите четири байт UID на Mifare класически в една променлива #
cardidentifier = UID [3];
cardidentifier << = 8; cardidentifier | = UID [2];
cardidentifier << = 8; cardidentifier | = UID [1];
cardidentifier << = 8; cardidentifier | = UID [0];
Serial.println (cardidentifier);
ако (cardidentifier == 606061173) {
Keyboard.write ( "m");
Keyboard.write ( "Y");
Keyboard.write ( "Р");
Keyboard.write ( "А");
Keyboard.write ( "S");
Keyboard.write ( "S");
Keyboard.write ( "w");
Keyboard.write ( "О");
Keyboard.write ( "R");
Keyboard.write ( "D");
забавяне (5000); // прави се, че паролата не се повтаря
}
}
}
След като кодът е заредена, отваряне на серийното комплекта монитор за 9600 бода. Втори поднос NFC-карта на читателя и го извадете. Мониторът трябва да покаже съобщение «Card открити #card номер». Сменете «cardidentifier ==» получил редица настоящия номер на карта, в съответствие.
Сега промените области от код, който е отговорен за паролата. Както можете да видите, паролата по подразбиране е комбинация от «mypassword». Заменете я с настоящия ни въвеждане на парола в операционната система (броят на знаците на паролата се сменя само чрез добавяне / от линии с екип «Keyboard.write).
Рестартирането на окончателния код на Ардуино, а сега, веднага, щом ние носим тази карта с NFC четец, паролата ще бъде веднага влезе в полето за въвеждане. Хит Enter и се радвайте.
В коментар за проекта намери един човек, който се предлага в допълнение към серията на командния вход парола окончателен Keyboard.write (KEY_RETURN); да се елиминира необходимостта да натиснете Enter, но това решение не е потвърдена.