阻止其他扫描仪应用程序扫描打印的QRcode中的信息


Prevent other scanner apps from scanning information in printed QRcode?

我正在打印一个带有vcard信息的qrcode(为此使用qrlib.php),我正在swift(iOS)中创建一个简单的条形码扫描应用程序。

我的原型似乎可以工作,但现在我偶然发现了以下问题;我希望只有授权的合作伙伴才能扫描二维码。我不确定是否必须在php/qrcode端添加一些额外的变量/键,或者更改我的扫描swift代码。这是回声qrcode的主要php部分,是否可以添加自定义变量,使qrcode对其他条形码扫描仪不可读?

2/或者可能有某种简单的加密

$tmp_vcard = 'BEGIN:VCARD VERSION:3.0 N:' . $visitorData[0]->userLname . ';' . $visitorData[0]->userFname . ' FN:' . $visitorData[0]->userPosition . ' ORG:' . $visitorData[0]->userCompany . ' TITLE: ' . $visitorData[0]->userPosition . ' TEL;WORK;VOICE:' . $visitorData[0]->userPhone . ' ADR;TYPE=WORK:;;' . $visitorData[0]->userAddress . ';' . $visitorData[0]->userPostal . ';' . $visitorData[0]->userCity . ' EMAIL:' . $visitorData[0]->userEmail . ' URL: END:VCARD';

总之,也许可以称之为私人二维码/vcard?

QR码只是将数据(如字符串)表示为2D图像的一种方式。由于这是一个开放的标准,你不能真正阻止任何人解码它

您可以在PHP端以某种方式加密Vcard,并将解密代码添加到扫描仪应用程序中。我不知道Swift端有哪些加密功能,所以我不能对此提出任何建议。想到河豚或PGP。

但我不认为这是高度安全的。即使你把所有加密的东西都做对了,它也和扫描仪应用程序一样安全,因为解密所需的所有信息都必须在里面。所以,如果它在应用商店里…

这应该足以防止普通智能手机用户简单地将二维码扫描仪指向它并获得Vcard。