הארדקור "עשה זאת בעצמך" - הכניסה למערכת ההפעלה עבור מפת NFC
עשה זאת בעצמך / / December 19, 2019
עד כה, משתמשי מערכות הפעלה למחשבים שולחניים פופולריות לא היו לי שום אפשרות אחרת כניסת OS, למעט הסיסמה. מספיק לסבול את זה! הגיע הזמן להרים מלחם ולעשות הליך אימות ניתן להשוות בפשטות עם מלטפת את חתולתה.
היום ב DIY הקטגוריה, נחלוק הציצו Instructables הדרך להזין סיסמה כדי התחברות למערכת ההפעלה באמצעות כרטיס NFC.
שלב 1: פרטים
אנחנו צריכים:
- Arduino ליאונרדו
- Adafriut NFC מגן
- כרטיס NFC (מגיע עם Adafriut NFC מגן)
- חתיכה קטנה של חוט
- סכין חדה
- הלחמה
- כלי חוטי חיתוך הפשטה
- המחשב
- כבל מיקרו USB
שלב 2: ברזל
נוהל יצירת מודול החומרה היא פשוטה מאוד.
את השינוי רק הנדרש לתפעול המכשיר הוא לשבור את הקשר בין פינים והפין IRQ 2. עבור סכין שימושי זה.
אז אתה צריך לחבר את IRQ ו- 6 סיכות עם חוט מגשר.
בדוק בהעדר / נוכחות של איש קשר, אתה יכול להשתמש ברב מודד, ועל הבנה ברורה יותר של תהליך הבניה ואת הצעת לאונרדו NFC-מודול כאן בסרטון הקצר הבא. הכל מוצג צעד אחר צעד מאוד ברור:
שלב 3: תוכנה
בהמשך מופיע קוד זה חייב להיות מלא ב Arduino. לפני תחילת ההורדה אתה צריך לוודא כי ספריית Adafruit NFC. קראו עוד על זה כאן.
#include
#include
#define IRQ 6 // עקבות זה חייב להיות גזור שרוט!
#define RESET 8
NFC Adafruit_NFCShield_I2C (IRQ, RESET);
//////////////////////////////////// SETUP
התקנת חלל () {
// להקים ספרייה סידורית ב 9600 bps
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 ( «קושחה Ver. «); Serial.print ((versiondata >> 16) & 0xFF, DEC);
Serial.print ( ''); Serial.println ((versiondata >> 8) & 0xFF, DEC);
// לוח Configure לקרוא תגי 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 ...»);
// להמתין כרטיסי סוג ISO14443A (Mifare, וכו '). כאשר אחד נמצא
// "UID" יהיה מאוכלס עם UID, ו uidLength יציין
// אם UID הוא 4 בתים (קלאסי Mifare) או 7 בתים (Ultralight Mifare)
הצלחה = nfc.readPassiveTargetID (PN532_MIFARE_ISO14443A, uid, & uidLength);
uint32_t cardidentifier = 0;
אם (הצלחה) {
// מצא כרטיס!
Serial.print ( «כרטיס זוהה #»);
// להפוך את UID ארבעה בתים של mifare קלאסי לתוך # משתנה בודד
cardidentifier = UID [3];
cardidentifier << = 8; cardidentifier | = UID [2];
cardidentifier << = 8; cardidentifier | = UID [1];
cardidentifier << = 8; cardidentifier | = UID [0];
Serial.println (cardidentifier);
אם (cardidentifier == 606,061,173) {
Keyboard.write ( 'מ');
Keyboard.write ( 'y');
Keyboard.write ( 'עמ');
Keyboard.write (א ');
Keyboard.write ( 's');
Keyboard.write ( 's');
Keyboard.write ( 'w');
Keyboard.write ( 'o');
Keyboard.write ( 'r');
Keyboard.write ( 'ד');
עיכוב (5000); // מוודא את הסיסמה לא ישנה
}
}
}
ברגע שהקוד נטען, לפתוח את סט צג סדר כדי באוד 9600. כרטיס NFC שניות מגש לקורא ולהסיר. המוניטור צריך להציג הודעה «כרטיס זוהה מספר #card». החלף «cardidentifier ==» מספר קיבל של מספר הכרטיס הנוכחי בתור.
עכשיו לשנות את קטע הקוד הוא אחראי הסיסמה. כפי שאתה יכול לראות, את סיסמת ברירת המחדל היא שילוב של «mypassword». החליפו אותו כניסת הסיסמה הנוכחית שלנו לתוך מערכת ההפעלה (מספר התווים של הוחלפה הסיסמה פשוט על ידי הוספה / החוצה קווים עם צוות «Keyboard.write).
הפעלה מחדש של הקוד הסופי Arduino, ועכשיו, רק ברגע שאנו מביאים את הכרטיס הזה כדי שהקורא-NFC, הסיסמה תהיה נכנסו מיד בשדה הקלט. הכה זן ולשמוח.
בשנת הערות לפרויקט מצא אדם הציע להשלים את סדרת סיסמא קלט הפקודה הסופית Keyboard.write (KEY_RETURN); Enter כדי לבטל את הצורך בעיתונות, אך החלטה זו לא אומתה.