关于二维码扫描与网络的一个意外真相

当你扫描一个二维码时,你多半以为过程很简单:摄像头读取图案,应用完成解码,你拿到结果。全程不需要网络,只靠光学和数学。

就二维码解码本身而言,这个想法在技术上完全正确。二维码是一种自成一体的数据格式——所有信息都编码在黑白方块组成的网格里。扫描器无需联系任何服务器,就能解出一个二维码的内容。

但现实是:大多数免费的二维码扫描应用仍然会建立网络连接。你每扫一次码都是如此,而且往往是向多个服务器建立多条连接。这些连接并不是为你服务的,而是为应用的广告和分析系统服务的——这些系统必须依靠源源不断的、关于你和你行为的数据才能运转。

本文将逐一说明:为什么扫描二维码根本不需要网络;当应用仍然联网时会发生什么;以及为什么选择一款离线优先的扫描器,是你能在手机上做出的最明智的隐私决定之一。

为什么二维码解码完全在本地完成

QR 是「Quick Response code」(快速响应码)的缩写。它由日本汽车零部件制造商电装波(Denso Wave)于 1994 年发明,用于在装配过程中追踪汽车零件。它的编码方案完全自成一体:只要有一张摄像头拍下的图像,软件仅凭数学运算就能解出内容——不需要任何网络查询。

二维码标准(ISO/IEC 18004)精确规定了信息如何编码进网格之中。任何实现该标准的应用,都可以完全离线地解码任何符合标准的二维码。它所需要的只有:

  • 访问摄像头以捕捉图像
  • CPU 运算时间来处理并解码图案
  • 除此之外别无所需

正因如此,二维码在飞机上、地下室里、没有蜂窝信号的偏远地区,以及你可能身处的任何地方都能正常使用。码里自带数据,读取它不需要任何服务器。

大多数二维码扫描应用实际上在做什么

既然解码完全在本地完成,为什么还有那么多扫描应用要申请联网权限?答案在于免费应用的商业模式。应用商店里的二维码扫描器大多依靠广告变现。要投放广告,就需要网络连接。但这条连接同时也打开了通往一系列其他行为的大门:

把扫描到的内容发送到远程服务器——许多扫描应用会记录你扫描到的网址、文本及其他数据,并将其传送到远程服务器。如果你在医疗机构、政府大楼或私营场所扫描二维码,这些网址可能会暴露关于你活动的大量信息。

投放广告——广告网络需要实时的网络连接来获取并展示广告。每一次广告请求通常都会携带你设备的广告标识符、IP 地址、大致位置以及行为上下文。

把扫描历史同步到云端——一些扫描应用会提供跨设备同步扫描历史的功能。这意味着你完整的二维码扫描历史——每一份餐厅菜单、每一张活动门票、每一个支付二维码——都存放在第三方服务器上。

检查更新并上报分析数据——大多数应用在启动时都会连回自家服务器,检查更新并上报使用情况数据。

在线扫描二维码时会泄露哪些数据

用几个真实场景把问题说得具体一些:

在餐厅:你扫描二维码查看菜单。扫描应用把这个网址发往它的分析服务器。日积月累,这些数据就勾勒出你的用餐习惯。

在诊所:你扫描二维码打开患者登记表。该网址可能包含诊所标识,甚至预约相关的元数据。汇总起来,医疗相关的扫码数据会暴露你的就医行为。

在支付终端:你扫描支付二维码。这类网址往往包含交易参数。记录这些数据,就等于暴露了你的财务行为。

为什么离线优先的扫描能彻底消除这些问题

一款离线优先的二维码扫描器在本地完成全部解码,没有联网权限,也无法发起任何网络请求。对这样的应用来说:

  • 不存在分析上报,因为根本没有可用于发送的网络访问权限
  • 不存在广告网络请求,因为广告既无法获取也无法展示
  • 扫描到的内容永远不会离开你的设备
  • 你的扫描历史只保存在本地
  • 你的 IP 地址永远不会暴露给应用的服务器

这不是「要不要相信开发者隐私政策」的问题,而是一种结构性的保证。没有联网权限的应用,字面意义上就无法向外传输任何东西。

QR Code Reader Without Ads:从设计上就 100% 离线

QR Code Reader Without Ads 正是以这一原则为基础构建的。该应用没有联网权限。这一点可以验证——在 Android 上,你可以在 Play 商店页面和设备设置中查看应用声明的权限。QR Code Reader Without Ads 只会显示摄像头权限。

当你扫描包含 Wi-Fi 密码的二维码时,密码只留在你的设备上。当你扫描一个网址时,它在本地完成解码,在你点击「打开」之前不会被发送到任何地方。当你扫描联系人二维码(vCard)时,联系人信息在设备端处理,并直接添加到你的通讯录。当你扫描支付二维码时,支付网址只会呈现给你确认,绝不会上传到任何服务器。

无论你连的是 Wi-Fi、5G、4G,还是完全没有信号,这款应用的表现都完全一致。你可以在飞行模式下的飞机上使用它,也可以在地下停车场、在人迹罕至的荒野里使用——任何地方都行。离线能力不是需要付费解锁的高级功能,而是这款应用最根本的架构。

离线扫描二维码的其他好处

速度:没有网络请求要等待,结果出现得更快。扫一下就看到结果——通常不到一秒。

续航:网络请求会消耗电量。一款完全不发起网络请求的应用,比那些持续维持广告网络连接和分析信标的应用省电得多。

可靠性:完全离线的应用在 100% 的时间、100% 的地点都能正常工作。

无需账号:QR Code Reader Without Ads 没有账号体系,因为它根本没有云端部分。没有可登录的地方,也没有需要打理的个人资料。

如何验证一款应用是否真的离线

  1. 查看声明的权限——没有 INTERNET 权限的应用无法发起网络请求。请查看 Play 商店页面或设备设置。
  2. 使用网络监控工具——NetGuard(Android)之类的应用可以让你看到所有应用的全部网络流量。
  3. 查询 Exodus Privacy 数据库——Exodus 会分析 Android 安装包,并列出其中所有的追踪器和权限。
  4. 把设备切到飞行模式——如果应用在飞行模式下依然运行完好,它就是真正的离线应用。

QR Code Reader Without Ads 四项检验全部通过。

下载 QR Code Reader Without Ads——离线、免费、无追踪

在 Android 上免费下载:

在 Google Play 下载 QR Code Reader Without Ads——100% 免费

iPhone 和 iPad 同样可用:

在 App Store 下载 QR Code Reader Without Ads——100% 免费

随处扫描,数据始终归你所有。没有广告,没有账号,没有妥协。