簡短的答案
- 產生。開啟 QR Code 與條碼產生器,選好用途——一個連結、一個 Wi-Fi 網路、一張聯絡人名片——核對 QR Code 將要攜帶的那串一字不差的內容,頁面把它亮出來而不是藏起來。印刷匯出 SVG,螢幕匯出 PNG。
- 印一張。真實尺寸,真實紙張,在兩百張的批次之前。
- 證明。用手機給打樣拍張照——斜著拍,就用現場的光——把照片拖進 QR Code 與條碼識別器。它顯示解碼出的內容;是連結的話,還顯示它真正抵達的主機。和你想的一致,批次就是安全的。
兩個工具都在你的瀏覽器裡跑,什麼也不往任何地方發——對一個 Wi-Fi 碼來說,這意味著裡面的密碼從來沒被敲進過別人的網站。
驗證真正能攔下什麼
- 錯別字。最常見的故障不是碼,是碼裡的網址。讀回來是唯一檢驗「實際編進去的是什麼」而不是「你以為貼上了什麼」的辦法。
- 尺寸與距離。隔著大廳掃的碼,需要比名片上那種更粗的模組。從人們將要站的位置給打樣拍照,才是誠實的測試;產生器的糾錯等級會把每一級在密度上的代價明說出來。
- 顏色。淺底深印的碼掃得出來;低對比度的品牌配色常常不行。這個識別器比大多數手機都能扛:連它都在照片上費勁的話,大堂裡最舊的那部手機就毫無機會。
- 摺痕與反光。Reed-Solomon 糾錯讓被遮住一部分的碼照樣能讀——上限是你選的那一級。要經風吹日曬的海報,配得上最高一級,以及它換來的略密一點的碼。
同一個識別器,用在不是你做的碼上
驗證也是開啟別人印的 QR Code 的安全方式。識別器在任何東西被開啟之前就亮出完整地址和它真正抵達的主機,還會點名那些給連結化裝的把戲:@ 前面的使用者名稱、形近的字母表、一層跳轉。停車咪表上的貼紙配得上這道檢查;會議胸牌也一樣。沒有任何東西替你開啟,你掃到的內容也不會被髮往任何地方。
如果你每週都做這件事
產生和檢驗分住在兩個頁面上是有意為之:每一個只做一件事,每一個都能獨自證明沒有任何東西離開你的電腦。但兩個都是開源的:MIT 許可證,零依賴的 ES 模組——產生器的編碼器和識別器的 Reed-Solomon 解碼器,各配一份把它講清的 README。
如果每週都有碼從你桌上發出去,就把程式碼代理指向程式碼儲存庫,讓它做一個頁面:產生之後立刻把畫出來的碼送回解碼器過一遍——每次匯出都內建一次自檢。這些模組就是寫來被讀的,把它們帶走,正是許可證存在的意義。