From 88c82455871cd03e0a0b6f32591f9bee74a2dc34 Mon Sep 17 00:00:00 2001 From: zuoxiao <470321431@qq.com> Date: 星期二, 05 三月 2024 14:52:22 +0800 Subject: [PATCH] 1.修改卡标识的bug 2.优化卡结构的代码 --- app/src/main/java/com/dayu/recharge/tools/NFCWriteHelper.java | 32 ++++++++++++++------------------ 1 files changed, 14 insertions(+), 18 deletions(-) diff --git a/app/src/main/java/com/dayu/recharge/tools/NFCWriteHelper.java b/app/src/main/java/com/dayu/recharge/tools/NFCWriteHelper.java index ee9b31a..16a3046 100644 --- a/app/src/main/java/com/dayu/recharge/tools/NFCWriteHelper.java +++ b/app/src/main/java/com/dayu/recharge/tools/NFCWriteHelper.java @@ -1,23 +1,13 @@ package com.dayu.recharge.tools; +import android.app.Activity; import android.content.Intent; import android.nfc.NfcAdapter; import android.nfc.Tag; import android.nfc.tech.MifareClassic; -import android.util.Base64; import android.util.Log; import java.io.IOException; -import java.nio.charset.StandardCharsets; -import java.security.InvalidKeyException; -import java.security.NoSuchAlgorithmException; - -import javax.crypto.BadPaddingException; -import javax.crypto.Cipher; -import javax.crypto.IllegalBlockSizeException; -import javax.crypto.NoSuchPaddingException; -import javax.crypto.SecretKey; -import javax.crypto.spec.SecretKeySpec; /** * @author zx @@ -32,9 +22,9 @@ private static NFCWriteHelper helper; private static int PASSWORD_LENTH = 12; - public NFCWriteHelper(Intent intent) { + public NFCWriteHelper(Intent intent, Activity activity) { + super(activity); this.tag = intent.getParcelableExtra(NfcAdapter.EXTRA_TAG); - } /** @@ -43,9 +33,9 @@ * @param intent * @return */ - public static NFCWriteHelper getInstence(Intent intent) { + public static NFCWriteHelper getInstence(Intent intent, Activity activity) { if (helper == null) { - helper = new NFCWriteHelper(intent); + helper = new NFCWriteHelper(intent, activity); } return helper; } @@ -131,8 +121,8 @@ /** * 淇敼瀵嗙爜 * - * @param a 涔﹀啓鐨勬墖鍖� - * // * @param callback 杩斿洖鐩戝惉 + * @param a 涔﹀啓鐨勬墖鍖� + * // * @param callback 杩斿洖鐩戝惉 */ public boolean changePasword(int a) { MifareClassic mfc = MifareClassic.get(tag); @@ -143,6 +133,7 @@ int count = mfc.getSectorCount(); boolean isOpen = mfc.authenticateSectorWithKeyA(a, defauleKey); + //楠岃瘉鏄惁鏄粯璁ゅ瘑鐮侊紝褰撻粯璁ゅ瘑鐮佹椂淇敼瀵嗙爜 if (isOpen) { //灏嗗瘑鐮佽浆鎹负keyA @@ -151,7 +142,7 @@ data[i] = dataA[i]; } //杈撳叆鎺у埗浣� - data[6] = (byte) 0xff; + data[6] = (byte) 0xFF; data[7] = (byte) 0x07; data[8] = (byte) 0x80; data[9] = (byte) 0x69; @@ -164,6 +155,11 @@ int bCount = mfc.getBlockCountInSector(a); //鍐欏埌鎵囧尯鐨勬渶鍚庝竴涓潡 mfc.writeBlock(bIndex + bCount - 1, data); +// byte[] dataa = mfc.readBlock(bIndex + bCount - 1); +// // 淇敼瀵嗙爜 A +// mfc.writeBlock(mfc.sectorToBlock(a) + 3, dataA); +// // 淇敼瀵嗙爜 B +// mfc.writeBlock(mfc.sectorToBlock(a) + 7, dataB); } return true; } catch (Exception e) { -- Gitblit v1.8.0