从文件生成二维码

从文件生成二维码

能否通过二维码生成整个文件?我指的不是文件文本内容,而是整个文件,能够通过扫描二维码来重现它。

如果我可以使用命令或便携式应用程序生成二维码,那么比将我的文件上传到可能导致数据泄露的服务器要好得多。

答案1

您应该了解二维码的工作原理。它们只是关于如何编码数据的规范。它们本身并不告诉最终用户应用程序如何处理这些数据。

QR 码之所以适用于超链接、电话号码或双重身份验证,是因为世界已经就 QR 码的内容达成了共识。例如,你的相机读取带有 URL 的 QR 码会告诉浏览器打开该 URL。请参阅这里更多信息:

二维条形码通常对文本进行编码,但该文本可以表示很多东西。通常,二维条形码对表示 URL 的文本进行编码,例如https://google.com/m。这是一串特殊的文本,因为读者可以将其识别为 URL,因此可以对其采取行动:读者可以在浏览器中打开该 URL。

这意味着,理论上,您可以开发自己的二维码数据格式,以便在最终用户设备上创建文件。该格式(可以说是非常幼稚的)可能如下所示:

filename:foo.png|data:iVBORw0KGgoAAAANSUhEUgAAAh4AAALQCAYAAADfIXmOAAAAAXNSR0IArs4c6QAAIABJREFUeF7snQnYVdP3xxcyZ86czGQekhSZpdIgkShp0EAJJZQkQylJUWgQFaUimpQhUyFK5llk9jMnGTL+n8/236/Tde57731733vOfc93P09PdM85e+3vWmft715r7X3W+Pvvv/82NSEgBISAEBACQkAI5AGBNUQ88oCyuhACQkAICAEhIAQcAiIeMgQhIASEgBAQAkIgbwiIeOQNanUkBISAEBACQkAIiHjIBoSAEBACQkAICIG8ISDikTeo1ZEQEAJCQAgIASEg4iEbEAJCQAgIASEgBPKGQKKIxxvPLs8bsOpICMQdgUqV17Gtq6wXd

您必须编写自己的应用程序,根据传递给它的文件名和内容以这种格式存储二维码数据。

然后,您必须编写自己的客户端应用程序来解析此格式。您的应用程序必须将具有指定名称的文件及其数据内容存储在用户的设备上。

但是:从安全角度来说,这简直就是一场噩梦。说真的。千万别这么做。如果有一个应用程序界面允许将未知内容的文件任意写入最终用户设备,那么对我来说,这听起来很麻烦。

总而言之,你应该重新评估你的用例。(我不知道,因为你没有解释你实际上需要这个。)

答案2

来自维基百科 QR 码 - 存储

QR 码符号中可存储的数据量取决于数据类型(模式或输入字符集)、版本(1、...、40,表示符号的整体尺寸,即 4 × 版本号 + 每边 17 个点)和纠错级别。最大存储容量出现在版本 40 和纠错级别 L(低)下,用 40-L 表示:

最大字符存储容量(40-L)
字符是指输入模式(数据类型)的单个值。

输入模式 最大字符数 位/字符。 可能的字符,默认编码
仅限数字 7,089 31⁄3 0、1、2、3、4、5、6、7、8、9
字母数字 4,296 51⁄2 0–9、A–Z(仅大写)、空格、$、%、*、+、-、.、/、:
二进制/字节 2,953 8 ISO 8859-1
汉字/假名 1,817 十三 换档 JIS X 0208

原表截图

那么,您的问题的答案是肯定的 - 只要文件符合上述限制。

您可能需要编写自己的编码/解码程序来实现这种用途,但原则上这是完全可能的,尽管它仅适用于小文件。

答案3

您可以查看qrencode.然后您就可以根据需要从命令行生成二维码并将生成的代码保存为。

例子:

$ qrencode -o qrcode.png 'Hello World!'

有许多标志应该可以帮助您完成任务。但您必须根据需要阅读手册。

相关内容