我有一个场景要求我生成一个带有加密数据的打印页面,以后可以将其扫描到我们的应用程序中。很像条形码,但加密。
要加密的文本量介于1KB到10KB之间,但将来可能会增加。最有可能不超过1MB。
我开发了文档处理系统,因此我了解打印的dos和donts。扫描通常会为打印页面添加属性,例如倾斜,旋转,工件等。
所以问题是:
编辑:似乎条形码是唯一可行的解决方案。数据本质上是一系列数字,因此我可以使用基数10,然后在加密之前将它们压缩到代码/索引表。或者使用更高的基数在这里更明智?
答案 0 :(得分:0)
申请是否在线?如果是这样,您是否考虑过在服务器中安全地存储数据(如果您真的希望这样加密),并在页面上以QR code的形式打印访问令牌(或简称为Web引用) ?扫描令牌后,您的应用可以从服务器检索实际数据。
修改强>
虽然上述内容可以提供更高的可靠性和可扩展性,但您仍然可以直接在页面上将数据存储在QR码中。您只需要加密到字母数字空间(using Base64 encoding)并将其存储为一系列QR码; each can store around 3KB,因此您可以在页面上获得大量数据(只要页面没有损坏)。
答案 1 :(得分:0)
我的建议是创建一个C#程序来获取数据,对其进行加密,然后通过Base64编码器运行它。然后我将获取Base64数据并从数据创建QR码位图。然后我会缩小位图,以便你可以在页面上适应很多,然后我会打印那些QR码的页面。稍后您可以扫描它们,放大每个代码然后读入数据。最后,你必须对它进行Base64解码然后解密它!
答案 2 :(得分:0)
High-Capacity Color Barcodes是2D矩阵代码,使用彩色“条形”(通常是三角形)对打印页面上的数据进行编码。维基百科的文章称他们每平方英寸可存储3kB。
显然这些都需要彩色打印和扫描硬件。
答案 3 :(得分:0)
除非您需要能够从任何互联网或网络访问完全脱机运行,否则我建议加密文本,散列加密并将哈希存储在QR码中。获取2d条形码或QR码来存储64或128位散列应该足够简单,并且足够可靠地进行扫描(因为它们是为它们设计的)。商业QR扫描仪或软件可以轻松扫描。
如果您无法在打印和扫描之间访问公共服务器,那么2d条形码是您唯一真正的选择,并且不具备您想要的信息密度。你有更好的机会将它存放在RFID或迷你CD上。