简短的答案
- 生成。打开二维码与条形码生成器,选好用途——一个链接、一个 Wi-Fi 网络、一张联系人名片——核对二维码将要携带的那串一字不差的内容,页面把它亮出来而不是藏起来。印刷导出 SVG,屏幕导出 PNG。
- 印一张。真实尺寸,真实纸张,在两百张的批量之前。
- 证明。用手机给打样拍张照——斜着拍,就用现场的光——把照片拖进二维码与条形码识别器。它显示解码出的内容;是链接的话,还显示它真正抵达的主机。和你想的一致,批量就是安全的。
两个工具都在你的浏览器里跑,什么也不往任何地方发——对一个 Wi-Fi 码来说,这意味着里面的密码从来没被敲进过别人的网站。
验证真正能拦下什么
- 错别字。最常见的故障不是码,是码里的网址。读回来是唯一检验“实际编进去的是什么”而不是“你以为粘贴了什么”的办法。
- 尺寸与距离。隔着大厅扫的码,需要比名片上那种更粗的模块。从人们将要站的位置给打样拍照,才是诚实的测试;生成器的纠错等级会把每一级在密度上的代价明说出来。
- 颜色。浅底深印的码扫得出来;低对比度的品牌配色常常不行。这个识别器比大多数手机都能扛:连它都在照片上费劲的话,大堂里最旧的那部手机就毫无机会。
- 折痕与反光。Reed-Solomon 纠错让被遮住一部分的码照样能读——上限是你选的那一级。要经风吹日晒的海报,配得上最高一级,以及它换来的略密一点的码。
同一个识别器,用在不是你做的码上
验证也是打开别人印的二维码的安全方式。识别器在任何东西被打开之前就亮出完整地址和它真正抵达的主机,还会点名那些给链接化装的把戏:@ 前面的用户名、形近的字母表、一层跳转。停车咪表上的贴纸配得上这道检查;会议胸牌也一样。没有任何东西替你打开,你扫到的内容也不会被发往任何地方。
如果你每周都做这件事
生成和检验分住在两个页面上是有意为之:每一个只做一件事,每一个都能独自证明没有任何东西离开你的电脑。但两个都是开源的:MIT 许可证,零依赖的 ES 模块——生成器的编码器和识别器的 Reed-Solomon 解码器,各配一份把它讲清的 README。
如果每周都有码从你桌上发出去,就把代码代理指向代码仓库,让它做一个页面:生成之后立刻把画出来的码送回解码器过一遍——每次导出都自带一次自检。这些模块就是写来被读的,把它们带走,正是许可证存在的意义。