RC522改密码,求大招

2020-01-01 17:54发布

能读卡,也能写卡,默认密码0xFF,0xFF,0FF,0xFF,0xFF,0xFF,随便改动一个字节,就不通过了,是不是还要什么CRC等等呢?该如何改呢?求个方法,百度搜半天找不到
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
16条回答
llj1007
1楼-- · 2020-01-02 13:49
heicnhei3 发表于 2016-3-11 09:11
控制字节默认FF 07 80 69, 换成位是:
1        1        1        1                1        1        1        1
0        0        0        0                0        1        1        1

你对应扇区校验A密码成功后,写块3数据,前6个字节写成你要更改的A密码,中间4个写成默认的控制字节,后6个字节全写成FF,试试!
heicnhei3
2楼-- · 2020-01-02 16:09
本帖最后由 heicnhei3 于 2016-3-11 09:41 编辑
gongngei 发表于 2016-3-11 09:27
前面六个字节是KEYA,中间四个是控制字,后面六个是KEYB
控制字用默认的FF 07 80 69就行了,除非有特殊的要 ...


帮忙看一下,会不会有错误的地方

下面写代码,只改动一个0xFF,变为0x0e
u8 IC_New_KeyA[] = {0x0e, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF};//{IC_DEF_KeyA};
if(MI_OK != PcdRead(4*2-1, g_ucTempbuf))        return ;        //读取卡块7(是控制块)
for(u8 fori = 6; fori--; )        g_ucTempbuf[fori] = IC_New_KeyA[fori];        //改A密码
if(MI_OK != PcdWrite(4*2-1, g_ucTempbuf))        return ;        //把新密码写卡块7

if(MI_OK != PcdAuthState(PICC_AUTHENT1A, 4, IC_New_KeyA, g_ucTempbuf)) return ;       
块4验证卡片密码不通过,块4和块7是同个扇区,对吗
heicnhei3
3楼-- · 2020-01-02 19:42
llj1007 发表于 2016-3-11 09:33
你对应扇区校验A密码成功后,写块3数据,前6个字节写成你要更改的A密码,中间4个写成默认的控制字节,后6 ...

是的,帮忙看一下几行代码有没有不对的地方,谢谢
heicnhei3
4楼-- · 2020-01-02 20:53
上面几行代码,是读出控制块的字节,改动前面6个字节为自己的密码,后面的不变
llj1007
5楼-- · 2020-01-02 22:51
 精彩回答 2  元偷偷看……
heicnhei3
6楼-- · 2020-01-03 02:10
llj1007 发表于 2016-3-11 10:06
if(MI_OK != PcdAuthState(PICC_AUTHENT1A, 4, IC_New_KeyA, g_ucTempbuf)) return ;
你先确认下这条指令 ...

块0,1,2,3是扇区0,
块4,5,6,7是扇区1,对吗?

一周热门 更多>