विषयसूची:

इलेक्ट्रॉनिक वॉलेट: 3 कदम
इलेक्ट्रॉनिक वॉलेट: 3 कदम

वीडियो: इलेक्ट्रॉनिक वॉलेट: 3 कदम

वीडियो: इलेक्ट्रॉनिक वॉलेट: 3 कदम
वीडियो: What happens to money in e-wallets? 2024, जून
Anonim
इलेक्ट्रॉनिक वॉलेट
इलेक्ट्रॉनिक वॉलेट

नोट: मेरे पास अब ऐसे निर्देश हैं जो RC522 और PN532 के लिए Arduino कोड प्रदान करते हैं।

अपनी पिछली पोस्ट में मैंने Mifare Classic 1k टैग से डेटा पढ़ने/लिखने के लिए MFRC522 और PN532 RFID मॉड्यूल के साथ संचार करने के लिए बुनियादी बातों का विवरण दिया था। इस पोस्ट में मैं इसे एक कदम आगे ले जाता हूं और दिखाता हूं कि टैग से इलेक्ट्रॉनिक वॉलेट बनाने के लिए उन मॉड्यूल का उपयोग कैसे करें। पिछली पोस्ट की तरह, इसे एक बुनियादी कार्यान्वयन के रूप में प्रस्तुत किया गया है, लेकिन इसे विभिन्न प्रकार के अनुप्रयोगों के लिए एक आधार प्रदान करना चाहिए जिनके लिए वेतन वृद्धि / कमी या मिलान कार्यों की आवश्यकता होती है।

चरण 1: डेटा अखंडता

इलेक्ट्रॉनिक वॉलेट के लिए हमेशा यह चिंता बनी रहती है कि कोई व्यक्ति उनके लिए भुगतान किए बिना क्रेडिट जोड़ सकता है। एक चिंता यह भी है कि डेटा लिखने के दौरान टैग पर क्रेडिट अनजाने में दूषित हो सकते हैं। डेटा एक्सेस के लिए टैग कुंजी के उपयोग की आवश्यकता होती है, इसलिए जब टैग को पहली बार प्रारंभ किया जाता है तो डिफ़ॉल्ट कुंजी को बदलना आवश्यक होता है। ऑनलाइन ऐसे लेख हैं जो इस बारे में बात करते हैं कि टैग को कैसे हैक किया जाए, भले ही आप कुंजी नहीं जानते हों, लेकिन तकनीक तुच्छ नहीं है। मैं आपके बैंक खाते के लिए इन टैगों का उपयोग करने की अनुशंसा नहीं करता, लेकिन वे बहुत कम जोखिम वाले अनुप्रयोगों के लिए पर्याप्त हैं।

डेटा भ्रष्टाचार की संभावना अपेक्षाकृत कम है लेकिन सॉफ्टवेयर कम से कम बुनियादी मामले को संभालने में सक्षम होना चाहिए। इस प्रक्रिया में भ्रष्टाचार का पता लगाने के लिए पहले चरण के साथ दो चरण शामिल हैं। इस परियोजना में जिसे क्रेडिट मूल्य के साथ-साथ क्रेडिट मूल्य के 1 के पूरक दोनों को संग्रहीत करके नियंत्रित किया जाता है। यह मूल्यों की एक सरल तुलना के लिए अनुमति देता है। दूसरा चरण क्रेडिट मूल्य और इसके पूरक दोनों का बैकअप संस्करण संग्रहीत करना है। यदि क्रेडिट का पहला सेट दूषित हो जाता है तो यह पुनर्प्राप्ति कार्रवाई की अनुमति देता है। यदि दोनों सेट दूषित हो जाते हैं तो सॉफ्टवेयर टैग को फिर से शुरू करने का प्रयास करता है जिसके परिणामस्वरूप सभी क्रेडिट का नुकसान होता है।

चरण 2: हार्डवेयर

हार्डवेयर
हार्डवेयर

हार्डवेयर कनेक्शन ऊपर दिए गए चित्र में दिखाए गए हैं। यह पिछले पोस्ट के समान सेटअप है जिसमें दो स्विच और एक पुल-अप रोकनेवाला शामिल है। एक स्विच को पुल-अप रोकनेवाला की आवश्यकता नहीं होती है क्योंकि यह एक PIC इनपुट पर होता है जिसमें एक कमजोर पुल-अप क्षमता होती है। व्यवहार में दोनों स्विच छिपे होंगे क्योंकि उनका उपयोग क्रेडिट जोड़ने और एक टैग को आरंभ करने के लिए किया जाता है। इनिशियलाइज़ स्विच वैकल्पिक है (मैन्युअल क्रेडिट ज़ीरोइंग करने के लिए) क्योंकि सॉफ़्टवेयर अपने आप एक नए टैग का पता लगा सकता है और उसे इनिशियलाइज़ कर सकता है। स्विच के बजाय जम्पर पिन का उपयोग किया जा सकता है।

चरण 3: सॉफ्टवेयर

दो स्विच को पढ़ने और टैग आरंभीकरण की आवश्यकता वाली स्थिति का पता लगाने के लिए सॉफ़्टवेयर में मुख्य लूप में परिवर्धन किए गए थे। जैसा कि हार्डवेयर सेक्शन में बताया गया है, टैग इनिशियलाइज़ेशन को स्विच के साथ मैन्युअल रूप से कमांड किया जा सकता है। सॉफ्टवेयर दो अन्य मामलों में टैग इनिशियलाइज़ेशन को भी कमांड कर सकता है। पहला, यदि यह एक नए टैग या डेटा सेक्टर का पता लगाता है और दूसरा, यदि क्रेडिट डेटा के दोनों सेट दूषित हैं।

टैग के प्रमाणीकरण के लिए लक्ष्य डेटा क्षेत्र के लिए "कुंजी ए" के उपयोग की आवश्यकता होती है। मिफेयर क्लासिक 1k टैग के लिए डिफ़ॉल्ट कुंजी "एफएफ एफएफ एफएफ एफएफ एफएफ एफएफ एफएफ" है, लेकिन आपके आवेदन के लिए इसे बदला जाना चाहिए। सॉफ्टवेयर डिफ़ॉल्ट कुंजी और एक नई कुंजी ("My_Key") दोनों के लिए परिभाषित करता है। "My_Key" में आप जो भी मान चाहते हैं, बस उसे प्लग इन करें। सॉफ़्टवेयर हमेशा "My_Key" का उपयोग करके पहले टैग को प्रमाणित करने का प्रयास करता है। यदि वह विफल हो जाता है, तो टैग को प्रारंभ करने के लिए रूटीन को कॉल किया जाता है और प्रमाणीकरण के लिए डिफ़ॉल्ट कुंजी का उपयोग किया जाता है। इनिशियलाइज़ेशन रूटीन कुंजी को "My_Key" में बदल देता है और क्रेडिट को शून्य पर सेट कर देता है। यदि आपके पास एक गैर-डिफ़ॉल्ट कुंजी वाला टैग है और आप नहीं जानते कि यह क्या है, तो टैग को प्रमाणित नहीं किया जा सकता है। यदि ऐसा होता है तो आप डिफ़ॉल्ट कुंजी का उपयोग करके अन्य डेटा क्षेत्रों की जांच कर सकते हैं यह देखने के लिए कि कोई उपलब्ध है या नहीं। ट्रेलर ब्लॉक, डेटा ब्लॉक और बैकअप ब्लॉक सभी सॉफ्टवेयर लिस्टिंग की शुरुआत में परिभाषित किए गए हैं ताकि आप उन्हें आसानी से बदल सकें।

इस एप्लिकेशन के लिए टैग में संग्रहीत डेटा का प्रारूप केवल सकारात्मक संख्याओं का उपयोग करता है (कोई कमी की अनुमति नहीं है) और मानों को पैक किए गए बीसीडी (बाइनरी कोडेड दशमलव) के चार बाइट्स के रूप में संग्रहीत किया जाता है। यह 0 से 99, 999, 999 (प्रति बाइट दो अंक) तक की क्रेडिट सीमा की अनुमति देता है। क्रेडिट मान और इसके 1 के पूरक एकल डेटा ब्लॉक में 16 बाइट्स में से केवल 8 का उपयोग करते हैं और शेष शून्य के साथ गद्देदार होते हैं। बैकअप प्रतिलिपि के लिए एक ही डेटा ब्लॉक में जगह है लेकिन मैंने फैसला किया कि बैकअप को एक अलग डेटा ब्लॉक में रखना सुरक्षित होगा। बैकअप ब्लॉक डेटा ब्लॉक के समान सेक्टर में है इसलिए अलग प्रमाणीकरण की आवश्यकता नहीं है। और भी सुरक्षित होने के लिए आप बैकअप को किसी भिन्न डेटा सेक्टर में रखने पर विचार कर सकते हैं लेकिन फिर उस डेटा तक पहुँचने के लिए एक अलग प्रमाणीकरण चरण की आवश्यकता होगी।

जब क्रेडिट का पठन किया जाता है तो पूरक मूल्य भी पढ़ा जाता है और फिर दोनों की एक दूसरे के साथ तुलना की जाती है। यदि कोई बेमेल है, तो मूल्य/पूरक के बैकअप सेट को पढ़ा और तुलना की जाती है। यदि वे मेल खाते हैं तो बैकअप को सही माना जाता है और इसका उपयोग दूषित डेटा को सुधारने के लिए किया जाता है। यदि बैकअप प्रतियां मेल नहीं खाती हैं तो टैग को खराब माना जाता है और इसे फिर से शुरू करने का प्रयास किया जाता है।

इंक्रीमेंट और डिक्रीमेंट वैल्यू को लिस्टिंग के सामने के पास परिभाषित किया गया है और पैक्ड बीसीडी में होने की उम्मीद है। नियमित रूप से वृद्धि और कमी को प्रभावी ढंग से 32-बिट संख्या पर करते हैं। गणित बहुत सरल है लेकिन प्रत्येक पैक किए गए बीसीडी बाइट के भीतर और एक बाइट से अगले बाइट के लिए परिणामों को समायोजित करने के लिए दिनचर्या के उपयोग की आवश्यकता होती है। यह मैक्रोज़ DAA (दशमलव समायोजन जोड़) और DAS (दशमलव समायोजित घटाव) के उपयोग से पूरा किया जाता है। ये मैक्रोज़ सुनिश्चित करते हैं कि प्रत्येक 4-बिट बीसीडी अंक हमेशा 0-9 की सीमा के भीतर रहता है।

पिछली पोस्ट में प्रदर्शन संदेशों के अलावा, इस एप्लिकेशन में कई अतिरिक्त चरणों के लिए संदेश हैं - विशेष रूप से यदि डेटा त्रुटियां हैं और/या टैग को ठीक करने या प्रारंभ करने की आवश्यकता है। क्रेडिट वृद्धि/कमी चरण से पहले और बाद में भी प्रदर्शित किए जाते हैं ताकि आप मानों को बदलते हुए देख सकें।

इस पोस्ट के लिए बस इतना ही। मेरे अन्य इलेक्ट्रॉनिक्स प्रोजेक्ट यहां देखें: www.boomerrules.wordpress.com

सिफारिश की: