跳到內容

讀卡機卡號格式設定說明

同一張卡,在不同讀卡機掃出來的號碼不一樣,是正常的,卡片沒有壞。

卡片裡真正存的只有一組固定的數字(UID)。讀卡機把這組數字「唸」給電腦聽的時候, 可以用很多種唸法:唸成十六進位、唸成十進位、只唸後面一段、拆成兩半分開唸。 不同廠牌的讀卡機出廠時選的唸法不同,所以你會看到:

同一張卡掃出來
A 廠牌讀卡機0010373854
B 廠牌讀卡機9E4ADE
C 廠牌讀卡機31390 19166

這三個其實是同一組數字的三種寫法,可以互相換算。


這台讀卡機的格式碼實際在做什麼

「這台讀卡機的格式碼實際在做什麼」章節

原廠軟體的「正向/反向」是以韌體內部的 little-endian 順序命名, 跟手機、Proxmark3 或卡片工具顯示的 UID 方向相反。 本站的「正向」改以使用者看到的 UID byte order 為準。

以 4-byte UID 69 E3 62 84 為例,讀卡機反向處理後的順序是 84 62 E3 69, BCC 為 6C。下表列出目前已核對的轉換邏輯:

格式碼轉換方式輸出
0AUID 正向轉 10 碼十進位1776509572
0FUID 反向後轉 10 碼十進位2221073257
03UID 正向輸出十六進位69E36284
0CUID 反向後輸出十六進位8462E369
0B前 3 bytes 反向:62E369 轉 8 碼十進位06480745
0D0B 前面再補 000006480745
09反向 UID 轉十進位後保留後 8 碼21073257
08前 2 bytes 反向:E369 轉 5 碼十進位58217
068462E369 / 62 / E369 分別轉成 10 / 3 / 5 碼十進位222107325709858217
05BCC + 反向 UID:6C8462E369 轉 13 碼十進位0466077541225
07BCC + 反向 UID,直接輸出十六進位6C8462E369
0E62 / E369 分別轉成 3 / 5 碼十進位(2H4H8D)09858217
024/7-byte UID 正向輸出十六進位69E36284
014/7-byte UID 反向輸出十六進位8462E369
008462 / E369 分別轉成 5 / 5 碼十進位(4H4H10D)3389058217

04、10 是原廠介面沒有列出的 beta 格式碼。2026-09-23 實測確認兩者都能被韌體接受、 回讀保存,且這張 4-byte 卡都輸出 2221073257,與 0F 相同。Classic 7-byte 卡、 NTAG213 相容卡、NTAG4xx 卡與 125 kHz ID 磁扣也有相同的對應關係; 因此目前不放進正式設定選項。

另一顆純 125 kHz 磁扣經 Proxmark3 讀得 EM410x ID 0000AB4131。這台讀卡機在各格式的實際輸出如下; 前一輪用 IC+ID 複合卡測得的 791D746F 是該卡的 IC UID,不能當成 ID 輸出。

格式碼輸出格式碼輸出
0000171166890100AB4131
023141AB00033141AB00
040011223345050000011223345
06001122334517116689070000AB4131
08166890911223345
0A08263872000B11223345
0C00AB41310D0011223345
0E171166890F0011223345
100011223345

其中 07 保留完整 5-byte EM410x ID;09 與 0B 都等於 Proxmark3 顯示的 DEZ 8 11223345。 04、10 在這顆磁扣上也與 0F 相同,但其他 ID 值是否都如此仍待確認。

7-byte MIFARE Classic 實測

「7-byte MIFARE Classic 實測」章節

Proxmark3 讀得 UID 04 B5 20 9A 7E 6B 84。這張卡的 01/02 保留完整 7 bytes, 但多數數字格式只處理前 4 bytes。05/07 則取前 5 bytes 04 B5 20 9A 7E 並反向為 7E9A20B504;此時 7E 是 UID 第 5 byte,不是 BCC。

格式碼輸出格式碼輸出
00394564634001846B7E9A20B504
0204B5209A7E6B840304B5209A
042585834756050543751714052
06258583475603246340077E9A20B504
08463400985834756
0A00789792260B02143492
0C9A20B5040D0002143492
0E032463400F2585834756
102585834756

7-byte NTAG213 相容卡實測

「7-byte NTAG213 相容卡實測」章節

Proxmark3 讀得 UID 53 4C 65 17 23 00 01,晶片識別為上海飛聚的 NTAG213 相容卡。 這張卡在 01/02 輸出完整 7 bytes,在 03/0C 只處理前 4 bytes;05/07 則把 前 5 bytes 53 4C 65 17 23 反向為 2317654C53。

格式碼輸出格式碼輸出
0005989195390101002317654C53
02534C651723000103534C6517
040392514643050150716370003
06039251464310119539072317654C53
08195390992514643
0A13975155430B06638675
0C17654C530D0006638675
0E101195390F0392514643
100392514643

Proxmark3 讀得 UID 04 34 19 82 16 16 90,判為 NTAG 4xx(使用者稱 NTAG424)。 17 個格式皆收到 ACK 00 80、回讀與寫入一致;結束後已還原原始 06 設定。

格式碼輸出格式碼輸出
0033305133160190161682193404
02043419821616900304341982
042182689796050096671970308
06218268979602513316071682193404
08133160982689796
0A00705232660B01651716
0C821934040D0001651716
0E025133160F2182689796
102182689796

格式名稱怎麼看懂

「格式名稱怎麼看懂」章節

台灣門禁業界常用的格式名稱長得像亂碼,其實有規則:H 前面的數字是十六進位有幾碼,D 前面的數字是十進位有幾碼。

名稱拆開來看意思
8H10D8 個十六進位碼 → 10 個十進位數字整組 4 bytes 當成一個數字,最大 4294967295,剛好 10 位
6H8D6 個十六進位碼 → 8 個十進位數字只取後面 3 bytes,最大 16777215,剛好 8 位
4H4H10D4 碼 + 4 碼 → 共 10 個數字拆成前後兩半,各自轉十進位(各最大 65535,5 位),5 + 5 = 10
2H4H8D2 碼 + 4 碼 → 共 8 個數字拆成 1 byte + 2 bytes,3 位 + 5 位 = 8

知道規則之後,看到沒見過的名稱也能自己推。

各家的習慣用法(依 minipc 轉碼程式 頁面標註):

格式常見於
8H10D最常見,多數 USB 讀卡機的出廠預設
4H4H10DSOYAL 茂旭
2H4H8DSOCA 日懋
6H8D卡威
反碼系列新領航、飛麒

ABA 和 Wiegand 又是什麼

「ABA 和 Wiegand 又是什麼」章節

這兩個跟上面那些名稱不是同一個層次的東西,這是最容易混淆的地方。

  • 8H10D、6H8D 這些講的是「數字寫成什麼樣子」,也就是你在螢幕上看到的那串字。
  • ABA 和 Wiegand(WG)講的是「讀卡機用什麼方式把資料送給控制器」,是接線與訊號的規格。

門禁讀卡機接到控制器的線材規格主要就這兩種:

Wiegand(WG26、WG34…)ABA
線D0 / D1 兩條資料線Data / Clock 兩條線
由來門禁業界的標準介面模擬磁條卡(Track 2)的輸出
名稱後面的數字一次傳幾個位元沒有這種編號

WG 後面的數字是「一次傳幾個位元」,扣掉頭尾的檢查位元才是真正的卡號:

總位元真正的資料換算後長度
WG262624 位元(8 + 16)6 碼十六進位 = 8 碼十進位
WG343432 位元(16 + 16)8 碼十六進位 = 10 碼十進位

看出來了嗎?

  • WG26 能傳的資料 = 6H8D,SOYAL 的技術文件把它叫做 ABA 8 碼
  • WG34 能傳的資料 = 8H10D,拆成兩半寫就是 4H4H10D
  • 2H4H8D 就是 WG26 那 24 個位元拆成「8 位元 + 16 位元」,門禁術語叫 Facility Code(場所碼)+ 卡號

所以你的直覺是對的:ABA、WG 那一組名詞和 8H10D、6H8D 那一組, 很多時候在講同一份資料,只是一邊從「線怎麼接」的角度命名,一邊從「數字長什麼樣」的角度命名。


對照表:舊系統用哪種,讀卡機就選哪種

「對照表:舊系統用哪種,讀卡機就選哪種」章節

換讀卡機時最重要的一件事:先弄清楚舊的那台輸出什麼,新的照著設。

舊系統顯示的樣子那是什麼格式這台讀卡機要選
10 位純數字,例如 00103738548H10D0A / 0F(依 byte 順序選擇)
8 位純數字,例如 103738546H8D / ABA 8 碼0B
10 位數字但前面固定兩個 06H8D 補零成 10 碼0D
8 位含英文字母,例如 9E4ADE12HEX 碼03 / 0C(依 byte 順序選擇)
位數對但數字完全不同byte 順序相反選同一類型的另一個方向
5 碼 + 5 碼數字4H4H10D00
3 碼 + 5 碼數字2H4H8D0E

判斷不出來的時候最快的方法:開一個記事本,把舊讀卡機接上刷一次,再把新的接上刷一次,兩串數字擺在一起比。 或者把舊系統顯示的號碼貼進 卡號格式轉換器,看它換算出來的哪一種對得上。


這幾個選項會在卡號前後補上固定字元,用途是讓收銀或考勤軟體知道「一筆輸入結束了」。

選項效果
資料前面加 ; 號輸出變成 ;0010373854
資料後面加 ? 號輸出變成 0010373854?
中間加逗號在號碼中間插入逗號分隔
資料最後面加回車刷完自動按一次 Enter

「資料最後面加回車」是最常用的一個,可以讓游標自動跳到下一欄或直接送出表單。 前面加 ;、後面加 ? 是模擬磁條讀卡機的習慣,有些舊系統會靠這兩個符號判斷資料邊界; 系統沒特別要求的話這兩項不用開。


除了上面的固定符號,還可以自訂最多 4 個前綴字元與 4 個後綴字元。 設定工具裡填的是 ASCII 十六進位碼,00 表示不輸出。

想輸出的字元填入
A 到 Z41 到 5A
a 到 z61 到 7A
0 到 930 到 39
#23
-2D
Tab09
Enter0D

例如前綴填 43 41 52 44(CARD),刷卡輸出就會變成 CARD0010373854。 可用線上 ASCII 對照表換算出對應的字元,不用自己查表。

「自訂位元組」也在前綴/後綴設定區,不需另外勾選。填 00 表示不輸出; 例如填 31 會輸出數字 1,位置在問號 ? 與後綴之間。


只有大聲、小聲兩段,沒有完全靜音的選項。


讀卡機設定工具 可以輸入卡片工具讀得的原始 4-byte 或 7-byte IC UID, 在同一張表選擇格式並即時列出 15 種正式格式的卡號本體;例如輸入 69E36284,03 顯示 69E36284、 0F 顯示 2221073257。這張表不包含前後綴、分號、問號、逗號與 Enter。 設定介面本身不會讀出原始 UID;已被讀卡機轉成十進位的刷卡結果不能當成原始 UID 輸入。 125 kHz ID 磁扣的規則不同,不適用這張 IC UID 預覽表。

連線並讀取裝置後,左側設定一變動,右側「裝置回讀的設定」會在寫入前先以黃色標出待變更項目, 並列出目前值與預計寫入值。按「寫入」且回讀相符後,讀卡機設定才真的改變。

改完之後怎麼確認

「改完之後怎麼確認」章節
  1. 開一個記事本或任何文字輸入框,把游標點進去。
  2. 刷一張卡。
  3. 對照輸出是不是你要的位數與格式。

寫入後應重新讀取裝置設定並比對;如果回讀結果相符,代表設定確實寫進讀卡機了。

萬一改壞了,請用修改前備份的設定還原。