| | |
| | | import com.dayu.qihealonelibrary.utils.CardCommon; |
| | | |
| | | import java.io.Serializable; |
| | | import java.util.List; |
| | | |
| | | /** |
| | | * Copyright (C), 2023, |
| | |
| | | */ |
| | | public class ManageCard extends BaseCard implements Serializable { |
| | | public String cardType = CardCommon.MANAGE_CRAD;//卡类型 |
| | | // public String cardData = "A0B1C289";//标识码 |
| | | |
| | | |
| | | /** |
| | | * M1卡的0扇区0块通常用于存储一些基本的卡片信息 |
| | | * 第0字节:卡片类型(M1卡为0x08) |
| | | * 第1字节:卡片地址(通常为0x00) |
| | | * 第2-5字节:卡片序列号(4字节) |
| | | * 第6-8字节:卡片制造商代码(3字节) |
| | | * 第9字节:卡片版本 |
| | | * 第10-15字节:预留区域 |
| | | */ |
| | | public byte[] userCard; //用户卡号 |
| | | |
| | | |
| | | public String getCardData() { |
| | | return cardData; |
| | | } |
| | | |
| | | public byte[] toZeroByte(QHAloneAppDatabase QHAloneAppDatabase) { |
| | | /** |
| | | * M1卡的0扇区0块通常用于存储一些基本的卡片信息 |
| | | * 0-4字节是卡号 |
| | | */ |
| | | public String userCard; //用户卡号 |
| | | |
| | | public String getUserCard() { |
| | | return userCard; |
| | | } |
| | | |
| | | public void setUserCard(String userCard) { |
| | | this.userCard = userCard; |
| | | } |
| | | |
| | | |
| | | public static ManageCard getBean(List<byte[]> data) { |
| | | |
| | | if (data != null) { |
| | | ManageCard passWordCard = new ManageCard(); |
| | | |
| | | byte[] zero = data.get(0); |
| | | byte[] passWordByte = new byte[4]; |
| | | System.arraycopy(zero, 5, passWordByte, 0, passWordByte.length); |
| | | passWordCard.setUserCard(HexUtil.bytesToHex(passWordByte)); |
| | | return passWordCard; |
| | | } |
| | | return null; |
| | | } |
| | | |
| | | |
| | | public byte[] toByte(QHAloneAppDatabase QHAloneAppDatabase) { |
| | | setCardData(QHAloneAppDatabase, cardType); |
| | | Zero zero = new Zero(); |
| | | return zero.toByte(); |
| | |
| | | byte[] cardDataByte = HexUtil.hexToByteArray(cardData); |
| | | System.arraycopy(cardDataByte, 0, data, 1, cardDataByte.length); |
| | | |
| | | byte[] userCardByts = HexUtil.hexToByteArray(userCard); |
| | | if (userCard != null) { |
| | | System.arraycopy(userCard, 0, data, 5, userCard.length); |
| | | System.arraycopy(userCardByts, 0, data, 5, userCardByts.length); |
| | | } |
| | | |
| | | data[15] = getByteSum(data); |