我使用在网上找到的 Tesco Clubcard QR 码作为源代码,在线代码阅读器产生了结果:“123123123123123:AKnp5O6eS3NeQAOh2lYmZSKSMSjJ+fCe1cG5FSQFU7vmkff2X8n+//T4dw==”,其余假设为 Base 卡号 64,123123123123123,编码二进制。虽然卡号和冒号很明显,但我无法解码生成的二进制文件。
00000000 00 a9 e9 e4 ee 9e 4b 73 5e 40 03 a1 da 56 26 65 |.©éäî.Ks^@.¡ÚV&e|
00000010 22 92 31 28 c9 f9 f0 9e d5 c1 b9 15 24 05 53 bb |".1(Éùð.ÕÁ¹.$.S»|
00000020 e6 91 f7 f6 5f c9 fe ff f4 f8 77 |æ.÷ö_Éþÿôøw|
似乎没有典型的压缩匹配,异或也不匹配。我还能尝试什么?
我自己在搜索有关条形码的资料,并没有找到太多。我将包括迄今为止我发现的最有趣的数据。
到目前为止,我只观察到两 (2) 种 Aztec 条形码格式。
较小的 Aztec 条形码格式仅编码 16 位数字。条形码下方打印的 18 位数字通常以 类似
634004 ...
的形式开始,但在条形码本身中被 类似 9794 ...
的形式取代。俱乐部卡号码的其余部分保持不变。这些示例数字根据卡的类型(Tesco Personal Finance、Clubcard、Fuelcard 等)而变化。
注意:打印的俱乐部卡号是通过 Luhn 算法的(所有主要信用卡/借记卡通常都必须通过该算法来验证号码)。编码后的数字没有通过 Luhn 算法
较大的 Aztec 条形码格式编码与上述相同,但也包含冒号(“:”)和 Base64 编码的二进制数据,如您所问。
我可以在网上找到的一个非常小的样本集合(几乎所有样本都为出版目的而改变)似乎是完全随机的数据。一些解码为 86 字节的数据,一些解码为 90 字节。我看不到任何模式。没有任何确定性,但我可能猜想我们正在处理的是一个自签名条形码,以防止人们试图生成自己的条形码。出于同样的原因,NHS covid QR 条码也出现了自签名条码。
如果它绝对是自签名条形码,那么 Tesco 会费心考虑任何人想要生成自己的条形码的唯一原因是为了获得稍微便宜的购物,上帝禁止任何人在不交出个人信息的情况下获得平庸的交易,这似乎很奇怪首先。