【问题标题】:RC522 default keyRC522 默认密钥
【发布时间】:2016-08-05 09:00:07
【问题描述】:

我在验证我的 mifare 卡时遇到问题。在数据表中写入默认密钥是0xFFFFFFFFFFFF,但它不起作用。如果有人可以帮助我,我不知道出了什么问题。

这是我的代码,我想补充一下检查卡是否正确且工作正常。

main.c:

    #include "spi.h"
    #include <stdio.h>
    #include "oldrc522.h"


    int main(void) {

    uint8_t CARD_ID[5];

    uint8_t KEY[6]={0xFF,0xFF,0xFF,0xFF,0xFF,0xFF};
    uint8_t MY_CARD[5]={0x19,0x5a,0xcc,0xac,0x23};

    TM_MFRC522_Init();
    printf("INIT\n\n\n");

    while(1){

    if (TM_MFRC522_Check(CARD_ID) == MI_OK) {
                //CardID is valid

                //Check if this is my card
                if (TM_MFRC522_Compare(CARD_ID, MY_CARD) == MI_OK) {
                   printf("HELLO!\n\n");

                   if( (TM_MFRC522_Auth(PICC_AUTHENT1A,7,KEY,MY_CARD) == MI_OK))
                       printf("OK");
                   else printf("FAILED\n\n");



                } else
                    printf("INVALID CARD\n\n");


            } else {
                //Some printing to delete content
            }

    }
}

TM_MFRC522_Auth 功能:

    TM_MFRC522_Status_t TM_MFRC522_Auth(uint8_t authMode, uint8_t BlockAddr, uint8_t* Sectorkey, uint8_t* serNum) {
    TM_MFRC522_Status_t status;
    uint16_t recvBits;
    uint8_t i;
    uint8_t buff[12];

    //Verify the command block address + sector + password + card serial number
    buff[0] = authMode;
    buff[1] = BlockAddr;
    for (i = 0; i < 6; i++) {
        buff[i+2] = Sectorkey[i];
    }
    for (i=0; i<4; i++) {
        buff[i+8] = serNum[i];
    }
    status = TM_MFRC522_ToCard(PCD_AUTHENT, buff, 12, buff, &recvBits);

    if ((status != MI_OK) || (!(TM_MFRC522_ReadRegister(MFRC522_REG_STATUS2) & 0x08))) {
        status = MI_ERR;
    }

    return status;
}

【问题讨论】:

  • “但它不起作用” 你能说得更具体些吗?哪个函数失败了?

标签: c microcontroller stm32 rfid


【解决方案1】:

RFID卡的生产商通常使用6字节的0xFF或0x00作为产品的默认密钥。

我没有像 rc522 那样使用这些库,但尝试通过它

char keyA[6] = { 0xFF, 0xFf, 0xFF, 0xFF, 0xFF, 0xFF, }; 进行身份验证。

请注意,如果您在通行扇区中写入其他内容,则会损坏卡。

【讨论】:

    猜你喜欢
    • 2011-11-22
    • 2019-07-10
    • 2010-09-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-02-25
    • 2015-08-18
    • 1970-01-01
    相关资源
    最近更新 更多