فهرست مطالب:

کیف پول الکترونیکی: 3 مرحله
کیف پول الکترونیکی: 3 مرحله

تصویری: کیف پول الکترونیکی: 3 مرحله

تصویری: کیف پول الکترونیکی: 3 مرحله
تصویری: آموزش کیف پول تراست ولت | Trust wallet 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 آن فقط از 16 بایت 8 در یک بلوک داده استفاده می کند و مابقی با صفر پر می شود. در همان بلوک داده برای نسخه پشتیبان فضای کافی وجود دارد ، اما من تصمیم گرفتم که تهیه نسخه پشتیبان در یک بلوک داده جداگانه ایمن تر باشد. بلوک پشتیبان در همان بخش بلوک داده قرار دارد ، بنابراین احراز هویت جداگانه مورد نیاز نیست. برای ایمن تر شدن ، ممکن است پشتیبان گیری را در بخش داده های مختلف قرار دهید ، اما سپس برای دسترسی به آن داده ها یک مرحله احراز هویت جداگانه لازم است.

وقتی خواندن اعتبارات انجام می شود ، مقدار تکمیل شده نیز خوانده می شود و سپس این دو در مقابل یکدیگر مقایسه می شوند. در صورت عدم تطابق ، مجموعه پشتیبان ارزش/مکمل خوانده و مقایسه می شود. اگر آنها مطابقت داشته باشند ، فرض می شود که نسخه پشتیبان درست است و برای تعمیر داده های خراب استفاده می شود. اگر نسخه های پشتیبان مطابقت نداشته باشند ، برچسب بد تلقی می شود و سعی می شود دوباره راه اندازی شود.

مقادیر افزایش و کاهش در نزدیکی جلوی فهرست تعریف شده و انتظار می رود که در BCD بسته بندی شده باشد. روالهایی که افزایش و کاهش را به طور مثر انجام می دهند ، بر روی یک عدد 32 بیتی انجام می دهند. ریاضیات بسیار ساده است اما نیاز به استفاده از روالهای معمول برای تنظیم نتایج حامل ها در هر بایت BCD بسته بندی شده و از یک بایت به بعد دارد. این امر با استفاده از ماکروهای DAA (Decimal Adjust Add) و DAS (Decimal Adjust تفریق) انجام می شود. این ماکروها مطمئن می شوند که هر رقم 4 بیتی BCD همیشه در محدوده 0-9 باقی می ماند.

این برنامه علاوه بر پیام های نمایش داده شده در پست قبلی ، دارای پیام هایی برای بسیاری از مراحل اضافی است - به ویژه اگر خطاهای داده وجود داشته باشد و/یا برچسب باید ثابت یا راه اندازی شود. اعتبارات نیز قبل و بعد از یک مرحله افزایش/کاهش نمایش داده می شوند تا بتوانید تغییر مقادیر را مشاهده کنید.

همین برای این پست سایر پروژه های الکترونیکی من را در www.boomerrules.wordpress.com ببینید

توصیه شده: