同一個後台同時管兩種。沒有人會想造假的地方(步道解說、導覽)用 QR,印一張幾乎不花錢;要證明人真的到過現場、或要防仿冒的地方,才用比較貴的 NFC 晶片。多數客戶是兩種混著貼。
每張標籤的網址都是隨機的,沒有規律也數不出下一張。如果網址是 0001、0002 這樣連號,任何人從 0001 數到 9999 就能把你整份財產清單看完 —— 那等於把家當攤在網路上。
base32 10–12 字元(≥50 bits 熵),由 CSPRNG 產生,不連號、不夾帶流水資訊。
一次印 500 張空白標籤,貼上去,之後走到哪一件就掃一下、當場說「這張是三號投影機」。不用先把三千件東西建完檔才能開始 —— 那是最多人卡住不動的一步。
把一張空白晶片變成你的標籤:讀出晶片編號、由伺服器配一把只屬於這張卡的鑰匙、寫進去、登記綁定。整套的重點是那把總鑰匙從頭到尾沒有離開過保險箱 —— 它不會進到瀏覽器,也不會存進資料庫,所以就算網站被入侵也複製不出卡。
主金鑰存於金鑰保管服務,以卡片 UID 做金鑰分散推導出每張卡的子金鑰;瀏覽器端只拿得到要寫入的 NDEF 內容。
同一顆晶片不可能同時是兩張標籤,資料庫直接擋。因為每張卡的鑰匙是從晶片編號算出來的,兩張標籤共用一顆編號就會算出同一把鑰匙,變成可以互相冒充 —— 到場證明的前提整個垮掉。
ux_tags_chip_uid 唯一索引;attachChip() 攔截 UNIQUE 違反並回傳可辨識的錯誤,不讓它變成 500。
勾選要印的,直接排成一張可以裁的 A4,上面有編號跟 QR。不用另外買標籤機或標籤軟體。
空白的 NTAG424 出廠時還不會產生通行碼,要先把「哪一段要加密、鑰匙放第幾格」寫進晶片裡才會啟用。這一步任何手機瀏覽器都做不到 —— 不分 iPhone 還是 Android,那是晶片本身的規格 —— 所以發卡需要一支 Android 手機或一台讀卡機。卡發完之後,掃描、借還、填檢查表全部平台都一樣。你也可以拿市面上的寫卡 App 自己寫,但寫完一定要回到發卡站登記那顆晶片編號:伺服器沒有這筆登記就配不出對應的鑰匙,那張卡的每一次感應都會顯示「未驗證」。