悠遊卡/感應晶片卡讀卡機編碼 8H10D 轉換 4H4H10D 附 Excel 公式

在市面上買了兩台讀卡機,發現讀取出來的卡號不一樣。

經過研究後發現主流有 8H10D 和 4H4H10D 兩種編碼。

舉例來說,我們讀卡機讀到的格式為 8H10D 是 1106668707,轉換為 4H4H10D 時會是 16886:27811。兩者的差異在於後者是兩組五個數字組成,前者則是一串 10 個數字。

換算 8H10D 為 4H4H10D 的方法如下:

  1. 使用 DEC2HEX 將數字從十進位轉換為十六進位
  2. 取前四位再轉回十進位作為第一組數字
  3. 取後四位再轉回十進位作為第二組數字

範例:

  1. 1106668707 轉換為十六進位是 41F66CA3
  2. 前四位 41F6 轉回十進位為 16886
  3. 後四位 6CA3 轉回十進位為 27811
  4. 得到 16886:27811

逆計算範例:

  1. 16886 轉回十六進位為 41F6
  2. 27811 轉回十六進位為 6CA3
  3. 得到 41F66CA3
  4. 41F66CA3 轉回十進位為 1106668707

Excel 公式範例:

  1. =DEC2HEX(1106668707)
  2. =HEX2DEC(LEFT(1106668707, 4))
  3. =HEX2DEC(MID(1106668707, 5, 4))