2012-09-28 78 views
0

我正在使用rs232 HID閱讀器。
它的手冊說,它的輸出是解碼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 

非常感謝每一個。

回答

2

使用字符串「CCDDDDDDDDDDXX」搜索返回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 =起始標記(它始終是一個1)
  • P =奇偶奇數和偶數(每個12位)。
  • F =基金代碼8位
  • N =卡號16位

從這一點我們可以看出,

  • 00000602031C27→N = 0b0000000110001110 =
  • 00000602031F2A→n = 0b0000000110001111 =
  • 0000060203202B→N = 0b0000000110010000 =
  • 00000601B535F1→N = 0b1101101010011010 =

所以,你的例子,我們可以大概得到:

  • (f,n)= 0b0000_0001__1101_1000_1100_1111
  • 前12位的奇偶校驗位= 0
  • 甚至最後12位= 0
  • 結果的奇偶校驗= 00000403b19e56
+0

真棒非常感謝!!!! –

+0

我回來一個新的閱讀一個可悲的不符合標準的不同卡片,我期待匹配不太有意義的位,但該模式不存在。 :-(所以,我的研究仍然有效 –

+1

@LuisSiquot:「不同的卡」仍然遵循相同的模式(但設施代碼爲0而不是1)。 – kennytm