解码HID数据

时间:2012-09-28 11:28:33

标签: algorithm decode

我使用的是rs232 HID阅读器 它的手册说它的输出是

  CCDDDDDDDDDDXX     
where CC is reserved for HID    
      DDDDDDDDDD is the transponder (the card) data
      XX is a checksum    

校验和在这里得到了很好的解释和无关紧要。关于DDDDDDDDDD仅表示有效值为0000000000到1FFFFFFFFF,但没有指示它如何转换为卡正面上打印的内容。
我有3张样本卡,遗憾的是短距离(编辑加上额外的一张)。我在这里向他们展示:

readed from rs232     shown on card    
 00000602031C27          00398    
 00000602031F2A          00399    
 0000060203202B          00400    
 00000601B535F1          55962       **new 

此外我还有一张装有1000张卡的数据库(正面印有什么),所以我需要解码路径,从我在rs232上阅读的内容到正面打印的内容。

来自DB的一些价值观(我已经看过这些卡片,但我现在没有对它们进行物理访问)

55503
60237
00833

非常感谢每一个人。

1 个答案:

答案 0 :(得分:2)

搜索字符串“CCDDDDDDDDDXX”返回http://www.rfideas.com/downloads/SerialAppNote8.pdf,这似乎描述了如何解码数字。我不保证这是否准确。

  

解码标准26位格式

     

读者发送的消息:

C C D D D D D D D D D D X X
---------------------------
0 0 0 0 0 6 0 2 0 3 1 C 2 7
0 0 0 0 0 6 0 2 0 3 1 F 2 A
0 0 0 0 0 6 0 2 0 3 2 0 2 B
0 0 0 0 0 6 0 1 B 5 3 5 F 1
     

剥离校验和,X,并将数据减少为二进制,给出:

  C    C    D    D    D    D    D    D    D    D    D    D
cccc cccc zzzz zzzz zzzz zspf ffff fffn nnnn nnnn nnnn nnnp
-----------------------------------------------------------
0000 0000 0000 0000 0000 0110 0000 0010 0000 0011 0001 1100
0000 0000 0000 0000 0000 0110 0000 0010 0000 0011 0001 1111
0000 0000 0000 0000 0000 0110 0000 0010 0000 0011 0010 0000
0000 0000 0000 0000 0000 0110 0000 0001 1011 0101 0011 0101
     

可以忽略7日左侧的所有卡数据字符。

     
      
  • c = HID特定代码。
  •   
  • z =前导零
  •   
  • s = start sentinel(始终为1)
  •   
  • p =奇偶校验奇数和偶数(每个12位)。
  •   
  • f =设施代码8位
  •   
  • n =卡号16位
  •   

从中我们可以看到

  • 00000602031C27→n = 0b0000000110001110 = 398
  • 00000602031F2A→n = 0b0000000110001111 = 399
  • 0000060203202B→n = 0b0000000110010000 = 400
  • 00000601B535F1→n = 0b1101101010011010 = 55962

因此,对于您的示例,我们可能会得到:

  • 55503
  • (f,n)= 0b0000_0001__1101_1000_1100_1111
  • 前12位的奇校验= 0
  • 最后12位的偶校验= 0
  • result = 00000403b19e56