תוכן עניינים:

ארנק אלקטרוני: 3 שלבים
ארנק אלקטרוני: 3 שלבים

וִידֵאוֹ: ארנק אלקטרוני: 3 שלבים

וִידֵאוֹ: ארנק אלקטרוני: 3 שלבים
וִידֵאוֹ: ארנק טרזור - מדריך שימוש בארנק החומרה 2024, נוֹבֶמבֶּר
Anonim
ארנק אלקטרוני
ארנק אלקטרוני

הערה: יש לי כעת הוראות המציעות קוד Arduino עבור RC522 ו- PN532.

בפוסט הקודם פירטתי את היסודות לתקשורת עם מודולי RFID MFRC522 ו- PN532 לקריאה/כתיבה של נתונים מתגי Mifare Classic 1k. בפוסט הזה אני לוקח את זה צעד אחד קדימה ומראה כיצד להשתמש במודולים אלה כדי ליצור ארנק אלקטרוני מתוך התגים. כמו בפוסט הקודם, זה מוצג כהטמעה בסיסית אך אמור להוות בסיס למגוון יישומים הדורשים פונקציות להגדלה/הפחתה או מדד.

שלב 1: שלמות הנתונים

בארנק אלקטרוני תמיד יש חשש שמישהו יכול להוסיף זיכויים מבלי לשלם עבורם. קיים גם חשש שהזיכויים על התג עלולים להיפגם בטעות במהלך כתיבת נתונים. גישות לנתונים מחייבות שימוש במפתח התג ולכן יש צורך לשנות את מפתח ברירת המחדל בעת האתחול הראשון של התג. יש מאמרים ברשת שמדברים על איך לפרוץ תג גם אם אינך יודע את המפתח אך הטכניקה אינה טריוויאלית. לא הייתי ממליץ להשתמש בתגים אלה עבור חשבון הבנק שלך, אך הם מספיק טובים להרבה יישומים פחות מסוכנים.

ההסתברות לשחיתות נתונים קטנה יחסית אך התוכנה אמורה להיות מסוגלת לפחות לטפל במקרה הבסיסי. תהליך זה כולל שני שלבים כאשר השלב הראשון הוא פשוט לזהות את השחיתות. בפרויקט זה המטופל על ידי אחסון הן ערך האשראי והן השלמת 1 של ערך האשראי. זה מאפשר השוואה פשוטה של הערכים. השלב השני הוא אחסון גרסת גיבוי של ערך האשראי ושל השלמתו. זה מאפשר פעולת שחזור אם מערכת הזיכויים הראשונה נפגמת. אם שתי הסטים פגומים אז התוכנה מנסה לאתחל את התג מחדש וכתוצאה מכך אובדן כל הזיכויים.

שלב 2: חומרה

חוּמרָה
חוּמרָה

חיבורי החומרה מוצגים בתרשים למעלה. זהו אותו התקנה כמו ההודעה הקודמת עם תוספת של שני מתגים ונגד משיכה. מתג אחד אינו דורש נגד משיכה מכיוון שהוא נמצא על קלט PIC בעל יכולת משיכה חלשה מובנית. בפועל שני המתגים יוסתרו מכיוון שהם משמשים להוספת נקודות זכות ולאתחול תג. מתג האתחול הוא אופציונלי (לביצוע אפס אשראי ידני) מכיוון שהתוכנה יכולה לזהות ולאתח תג חדש בעצמה. ניתן להשתמש בסיכות מגשר במקום מתגים.

שלב 3: תוכנה

תוספות ללולאה הראשית בתוכנה בוצעו על מנת לאפשר קריאה של שני המתגים ולאיתור מצב הדורש אתחול תגים. כפי שצוין בסעיף החומרה, ניתן לשלוט באופן ידני באתחול תגים באמצעות מתג. התוכנה יכולה גם לפקוד על אתחול תגים בשני מקרים אחרים. ראשית, אם הוא מזהה תג או מגזר נתונים חדש ושני, אם שתי קבוצות נתוני האשראי פגומות.

אימות תגים דורש שימוש ב"מפתח A "לתחום נתוני היעד. מפתח ברירת המחדל של תגי Mifare Classic 1k הוא "FF FF FF FF FF FF" אך יש לשנותו עבור היישום שלך. התוכנה מספקת הגדרות הן למפתח ברירת המחדל והן למפתח חדש ("My_Key"). פשוט חבר את הערכים שאתה רוצה לתוך "My_Key". התוכנה תמיד מנסה לאמת את התג הראשון באמצעות "My_Key". אם זה נכשל, השגרה לאתחול התג נקראת ומפתח ברירת המחדל משמש לאימות. שגרת האתחול משנה את המפתח ל- "My_Key" ומגדירה את הזיכויים לאפס. אם יש לך תג עם מפתח שאינו ברירת מחדל ואינך יודע מהו, לא ניתן לאמת את התג. אם זה קורה, ייתכן שתרצה לבדוק סקטורי נתונים אחרים באמצעות מקש ברירת המחדל כדי לראות אם אחד זמין. בלוק הטריילר, בלוק הנתונים וגיבוי מוגדרים כולם בתחילת רישום התוכנה, כך שתוכל לשנות אותם בקלות.

פורמט הנתונים המאוחסנים בתג עבור יישום זה משתמש במספרים חיוביים בלבד (אין אפשרות לגירעונות) והערכים מאוחסנים כארבעה בתים של BCD ארוז (בינארי מקודד עשרוני). זה מאפשר טווח אשראי בין 0 ל 99, 999, 999 (שתי ספרות לבייט). ערך האשראי והשלמת ה -1 שלו משתמשים רק ב- 8 מתוך 16 בתים בבלוק נתונים יחיד והשאר מרופדים באפסים. יש מקום באותו בלוק נתונים לעותק הגיבוי אך החלטתי שיהיה בטוח יותר לשים את הגיבוי בבלוק נתונים נפרד. בלוק הגיבוי נמצא באותו סקטור כמו בלוק הנתונים ולכן אין צורך באימות נפרד. כדי להיות בטוח עוד יותר, ייתכן שתשקול לשים את הגיבוי במגזר נתונים אחר, אך יהיה צורך בשלב אימות נפרד כדי לגשת לנתונים אלה.

כאשר מתבצעת קריאה של הזיכויים נקרא גם הערך המשלים ואז השניים מושווים זה לזה. אם יש חוסר התאמה, אז ערכת הגיבוי של ערך/השלמה נקראת ומשווה. אם הם תואמים, ההנחה היא שהגיבוי נכון והוא משמש לתיקון הנתונים הפגומים. אם עותקי הגיבוי אינם תואמים התגית נחשבת גרועה ונעשה לאתחל אותה מחדש.

ערכי התוספת וההקטנה מוגדרים בסמוך לחזית הרישום וצפויים להיות ב BCD ארוז. השגרה שעושה את ההגדלה וההורדה עושה זאת ביעילות במספר 32 סיביות. המתמטיקה היא פשוטה מאוד אך דורשת שימוש בשגרה כדי להתאים את התוצאות לנשיאות בתוך כל בית BCD ארוז ומבית אחד למשנהו. זה מושג על ידי שימוש במאקרו DAA (Add Decimal Addition) ו- DAS (Decimal Adjust Subtraction). פקודות מאקרו אלה מוודאות שכל ספרת BCD של 4 סיביות נשארת תמיד בטווח של 0-9.

בנוסף להודעות התצוגה בפוסט הקודם, יישום זה מכיל הודעות להרבה מהשלבים הנוספים - במיוחד אם יש שגיאות נתונים ו/או צריך לתקן או לאתחל את התג. הזיכויים מוצגים גם לפני ואחרי שלב תוספת/הפחתה, כך שתוכל לראות את הערכים משתנים.

זהו הפוסט הזה. בדוק את פרויקטי האלקטרוניקה האחרים שלי בכתובת: www.boomerrules.wordpress.com

מוּמלָץ: