İçindekiler:

Elektronik Cüzdan: 3 Adım
Elektronik Cüzdan: 3 Adım

Video: Elektronik Cüzdan: 3 Adım

Video: Elektronik Cüzdan: 3 Adım
Video: Adım at para kazan hîlesi ( Arapların taktiği 😅 ) 2024, Haziran
Anonim
Elektronik Cüzdan
Elektronik Cüzdan

NOT: Artık RC522 ve PN532 için Arduino kodu sunan Talimatlara sahibim.

Bir önceki yazımda, Mifare Classic 1k etiketlerinden veri okumak/yazmak için MFRC522 ve PN532 RFID modülleri ile iletişim kurmanın temellerini detaylandırdım. Bu yazıda bunu bir adım daha ileri götüreceğim ve bu modüllerin etiketlerden elektronik cüzdan oluşturmak için nasıl kullanılacağını göstereceğim. Önceki gönderide olduğu gibi, bu temel bir uygulama olarak sunulur, ancak artırma/azaltma veya hesaplama işlevleri gerektiren çeşitli uygulamalar için bir temel sağlamalıdır.

1. Adım: Veri Bütünlüğü

Bir elektronik cüzdan için her zaman birisinin ödeme yapmadan kredi ekleyebileceği endişesi vardır. Ayrıca, bir veri yazma sırasında etiket üzerindeki kredilerin yanlışlıkla bozulabileceği endişesi de vardır. Veri erişimleri, etiket anahtarının kullanılmasını gerektirir, bu nedenle etiket ilk başlatıldığında varsayılan anahtarın değiştirilmesi gerekir. Anahtarı bilmeseniz bile bir etiketin nasıl hackleneceğinden bahseden çevrimiçi makaleler var, ancak teknik önemsiz değil. Bu etiketleri banka hesabınız için kullanmanızı tavsiye etmem, ancak daha az riskli birçok uygulama için yeterince iyidirler.

Veri bozulması olasılığı nispeten küçüktür, ancak yazılım en azından temel durumu idare edebilmelidir. Bu süreç, sadece yolsuzluğu tespit etmek için ilk adımla birlikte iki adımı içerir. Hem kredi değeri hem de kredi değerinin 1'ler tümleyeni saklanarak gerçekleştirilen bu projede. Bu, değerlerin basit bir karşılaştırmasını sağlar. İkinci adım, hem kredi değerinin hem de tamamlayıcısının bir yedek versiyonunu saklamaktır. Bu, ilk kredi seti bozulursa kurtarma işlemine izin verir. Her iki küme de bozulursa, yazılım etiketi yeniden başlatmaya çalışır ve bu da tüm kredilerin kaybolmasına neden olur.

2. Adım: Donanım

Donanım
Donanım

Donanım bağlantıları yukarıdaki şemada gösterilmiştir. Bu, iki anahtarın ve bir çekme direncinin eklenmesiyle önceki gönderiyle aynı kurulumdur. Bir anahtar, yerleşik zayıf bir çekme özelliğine sahip bir PIC girişinde olduğu için bir çekme direnci gerektirmez. Pratikte, kredi eklemek ve bir etiketi başlatmak için kullanıldığından her iki anahtar da gizlenir. Başlatma anahtarı isteğe bağlıdır (manuel kredi sıfırlama yapmak için), çünkü yazılım kendi başına yeni bir etiketi algılayabilir ve başlatabilir. Anahtarlar yerine jumper pinleri kullanılabilir.

3. Adım: Yazılım

Yazılımdaki ana döngüye eklemeler, iki anahtarın okunmasına ve etiket başlatma gerektiren bir koşulun algılanmasına izin vermek için yapılmıştır. Donanım bölümünde belirtildiği gibi, etiket başlatma bir anahtarla manuel olarak komuta edilebilir. Yazılım ayrıca diğer iki durumda bir etiket başlatma komutu verebilir. Birincisi, yeni bir etiket veya veri sektörü algılarsa ve ikincisi, her iki kredi verisi grubu da bozuksa.

Etiketlerin doğrulanması, hedef veri sektörü için "A anahtarı"nın kullanılmasını gerektirir. Mifare Classic 1k etiketleri için varsayılan anahtar “FF FF FF FF FF FF”dir ancak uygulamanız için değiştirilmelidir. Yazılım, hem varsayılan anahtar hem de yeni bir anahtar (“My_Key”) için tanımlar sağlar. Sadece "My_Key" içine istediğiniz değerleri girin. Yazılım her zaman önce "My_Key" kullanarak etiketin kimliğini doğrulamaya çalışır. Bu başarısız olursa, etiketi başlatma rutini çağrılır ve kimlik doğrulama için varsayılan anahtar kullanılır. Başlatma rutini anahtarı "My_Key" olarak değiştirir ve kredileri sıfıra ayarlar. Varsayılan olmayan bir anahtara sahip bir etiketiniz varsa ve bunun ne olduğunu bilmiyorsanız, etiketin kimliği doğrulanamaz. Bu olursa, mevcut olup olmadığını görmek için varsayılan anahtarı kullanarak diğer veri sektörlerini kontrol etmek isteyebilirsiniz. Treyler bloğu, Veri bloğu ve Yedekleme bloklarının tümü, bunları kolayca değiştirebilmeniz için yazılım listesinin başında tanımlanmıştır.

Bu uygulama için etikette saklanan veri formatı sadece pozitif sayıları kullanır (açıklara izin verilmez) ve değerler dört bayt paketlenmiş BCD (İkili Kodlu Ondalık) olarak saklanır. Bu, 0 ila 99, 999, 999 (bayt başına iki basamak) arasında bir kredi aralığına izin verir. Kredi değeri ve 1'lerin tamamlayıcısı, tek bir veri bloğundaki 16 bayttan yalnızca 8'ini kullanır ve geri kalanı sıfırlarla doldurulur. Aynı veri bloğunda yedek kopya için yer var ama yedeği ayrı bir veri bloğuna koymanın daha güvenli olacağına karar verdim. Yedek blok, veri bloğu ile aynı sektörde olduğundan ayrı bir kimlik doğrulama gerekli değildir. Daha da güvenli olmak için, yedeği farklı bir veri sektörüne yerleştirmeyi düşünebilirsiniz, ancak daha sonra bu verilere erişmek için ayrı bir kimlik doğrulama adımı gerekecektir.

Kredilerin bir okuması yapıldığında, tümlenen değer de okunur ve ardından ikisi birbiriyle karşılaştırılır. Bir uyumsuzluk varsa, yedek değer/tamamlayıcı kümesi okunur ve karşılaştırılır. Eşleşirlerse, yedeklemenin doğru olduğu varsayılır ve bozuk verileri onarmak için kullanılır. Yedek kopyalar eşleşmezse, etiketin bozuk olduğu kabul edilir ve yeniden başlatılmaya çalışılır.

Artış ve azalma değerleri, listenin ön kısmına yakın bir yerde tanımlanmıştır ve paketlenmiş BCD'de olması beklenir. Arttırma ve azaltmayı etkin bir şekilde yapan rutinler, bunu 32 bitlik bir sayı üzerinde yapar. Matematik çok basittir, ancak paketlenmiş her BCD baytında ve bir bayttan diğerine taşıma sonuçlarını ayarlamak için rutinlerin kullanılmasını gerektirir. Bu, DAA (Ondalık Ayarlama Toplama) ve DAS (Ondalık Ayarlama Çıkarma) makrolarının kullanılmasıyla gerçekleştirilir. Bu makrolar, her 4 bitlik BCD basamağının her zaman 0-9 aralığında kalmasını sağlar.

Önceki gönderideki ekran mesajlarına ek olarak, bu uygulama, özellikle veri hataları varsa ve/veya etiketin düzeltilmesi veya başlatılması gerekiyorsa, birçok ek adım için mesajlara sahiptir. Değerlerin değiştiğini görebilmeniz için krediler ayrıca bir artırma/azaltma adımından önce ve sonra görüntülenir.

Bu yazı için bu kadar. Diğer elektronik projelerime göz atın: www.boomerrules.wordpress.com

Önerilen: