左晓为主开发手持机充值管理机
zuoxiao
2023-12-04 1057af10a464e70d10b8a90315d0ecec6a7cb205
注释修改密码
密码现识别为ffffffffffff和010203040506
4个文件已修改
19 ■■■■■ 已修改文件
app/src/main/java/com/dayu/recharge/activity/NFCWreatActivity.java 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
app/src/main/java/com/dayu/recharge/tools/BaseNFCHelper.java 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
app/src/main/java/com/dayu/recharge/tools/NFCWriteHelper.java 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
local.properties 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
app/src/main/java/com/dayu/recharge/activity/NFCWreatActivity.java
@@ -224,7 +224,6 @@
                    userFlag = WriteCardUtils.setUser(intent, userCard);
                }
                if (cleanCard != null) {
                    NFCWriteHelper.getInstence(intent).changePasword(1);
                    setClean(intent, cleanCard);
                }
                if (manageCard != null) {
app/src/main/java/com/dayu/recharge/tools/BaseNFCHelper.java
@@ -20,7 +20,7 @@
 */
public class BaseNFCHelper {
    /**
     * 默认密码(白卡密码)
     * 默认密码(白卡密码)ffffffffffff
     */
    public byte[] defauleKey;
@@ -28,14 +28,16 @@
     * 公司密码
     */
    public byte[] companyKey;
    //密码a区
    String companyKeyA;
    //密码B区
    String companyKeyB;
    public BaseNFCHelper() {
        // 解密字符串
        try {
            //初始密码
            byte[] encryptedBytes = Base64.decode("orDiGzvueQqPpU+VQ3NEzQ==", Base64.DEFAULT);
            Cipher cipher = Cipher.getInstance("AES/ECB/PKCS5Padding");
            byte[] encodedKey = {-117, -104, -100, 84, 111, -102, -29, -21, 72, -82, -105, 123, 77, 79, 17, -55, -102, -28, 50, 23, 67, 98, 0, -96, -10, -48, -60, 81, 113, 80, -32, -26};
@@ -43,16 +45,19 @@
            byte[] decryptedBytes = cipher.doFinal(encryptedBytes);
            String decryptedText = new String(decryptedBytes, StandardCharsets.UTF_8);
            defauleKey = HexUtil.hexToByteArray(decryptedText);
            byte[] encryptedBytes2 = Base64.decode("aYC9feYEOFOQHuzflLIXSw==", Base64.DEFAULT);
            //初始密码
//             byte[] encryptedBytes2 = Base64.decode("aYC9feYEOFOQHuzflLIXSw==", Base64.DEFAULT);
            byte[] encryptedBytes2 = Base64.decode("qeg4DUWf0ni9JfRWtD2krA==", Base64.DEFAULT);
            byte[] decryptedBytes2 = cipher.doFinal(encryptedBytes2);
            companyKeyA = new String(decryptedBytes2, StandardCharsets.UTF_8);
            companyKey = HexUtil.hexToByteArray(companyKeyA);
            //修改后的密码
            byte[] encryptedBytes3 = Base64.decode("n+SSZFb4DHsreVav/Z5ftg==", Base64.DEFAULT);
            byte[] decryptedBytes3 = cipher.doFinal(encryptedBytes3);
            companyKeyB = new String(decryptedBytes3, StandardCharsets.UTF_8);
        } catch (NoSuchAlgorithmException e) {
            throw new RuntimeException(e);
        } catch (NoSuchPaddingException e) {
app/src/main/java/com/dayu/recharge/tools/NFCWriteHelper.java
@@ -75,7 +75,7 @@
    public boolean writeData(byte[] str, int a, int b) {
        Log.i("NFCWreatActivity", "writeData: a=" + a + " b=" + b);
        //写卡时修改所有密码
        changePasword(a);
//        changePasword(a);
        if (str.length <= 16) {
            try {
                MifareClassic mfc = MifareClassic.get(tag);
@@ -142,6 +142,7 @@
                int count = mfc.getSectorCount();
                boolean isOpen = mfc.authenticateSectorWithKeyA(a, defauleKey);
                //验证是否是默认密码,当默认密码时修改密码
                if (isOpen) {
                    //将密码转换为keyA
local.properties
@@ -5,4 +5,4 @@
# For customization when using a Version Control System, please read the
# header note.
#Sat Nov 11 20:12:34 CST 2023
sdk.dir=D\:\\AndroidStudio\\sdk
sdk.dir=D\:\\sdk