From 44e05fc867c3f028cf110f7b2fefb417d51646b2 Mon Sep 17 00:00:00 2001
From: zuoxiao <470321431@qq.com>
Date: 星期四, 14 三月 2024 12:01:13 +0800
Subject: [PATCH] 添加密码校验 修复用户卡bug
---
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