安全/加密的QR码

and*_*eas 13 qr-code

是否有可以生成加密QR码的应用程序?

我没有很多关于加密QR码的文献.我们正在寻求实施客户可以向我们发送加密信息的内容,并在我们的网站上进行扫描.

你有没有参与过这样的项目?

Chr*_*son 21

其他答案建议您可以使用QR代码对URL进行编码,然后确保该URL上的服务提供您所需的身份验证/安全性.如果您用来与客户端通信的频道是数字和互联网连接,也许这是有道理的......如果它确实有意义,您根本不需要QR码,只需发送URL即可.正如Tadmas指出的那样,QR只是一种编码.

但是,我会从你原来的问题推断出你使用的频道是模拟(纸张??),数字但不是互联网连接(纸质原件或屏幕截图的数码照片,或??).这不是最常见的用例 - 不是本论坛上大多数受访者自然会考虑的 - 但我可以想象一些现实的用例,例如可能发生的账单或支付数据.

如果这是真的 - 如果由于某种原因你必须通过非互联网渠道传输实际数据,并且实际数据必须以QR码格式包装,那么有不同的方法来做到这一点.

显而易见的方法(高级)看起来像这样

message
   --> (compress) --> compressed message 
      --> (encrypt) --> encrypted compressed message
         --> (QR encode) --> QR of encrypted compressed message
            ... send over channel ...
      encrypted compressed message <-- (QR decode) <--
   compressed message <-- (decrypt) <-- 
message <-- (decompress) <--
Run Code Online (Sandbox Code Playgroud)

您的主要挑战是选择适合您目的的压缩和加密算法.

请注意,加密是非常明显的,尊重和谨慎的方法,不要只是一起猛击...

加密前压缩是最佳做法.它并不总是需要作为一个单独的步骤,因为一些加密算法会为您执行压缩 - 例如,PGP在加密之前压缩数据.其他人没有.如果您不确定或者方法需要通用(适用于不同的加密算法选择),您可以随时压缩; 这是安全的,有时甚至毫无意义.

加密算法的选择有很多含义(密钥管理等 - 巨大的主题).然而,其中一个含义与QR码特别相关 - 加密步骤会使您的信息膨胀多少.QR码块的容量有限,为2953字节,每个8位.如果您正在传输的消息接近此限制,您将需要选择输出大小等于输入大小的加密算法(AES是一个示例).如果消息远小于此限制,那么您将不关心这一点(例如,可以使用高度膨胀的PGP).

如果你能找到适合你和你客户的压缩和加密算法(以及分发密钥等的安全方法),那么我认为满足你的原始请求并不是特别困难.不要尝试加密QR码本身(不确定术语实际上是否有意义),而是压缩和加密数据,然后对生成的加密数据进行QR编码.什么都没有.

  • +1:实用信息. (2认同)

Sea*_*wen 8

心脏的QR码只是编码字节.那些字节可以是你想要的任何东西.它们可能是某些数据的加密.问题是读者应用程序是否会知道字节的性质并知道如何处理它.

问题是,不,它不会.在QR码规范或其他方面没有定义"安全QR码"的方案.所以,除了显示一串垃圾文本之外,没有读者会做任何事情.

您可以编写自己的自定义阅读器,知道该怎么做,但我想这是完全不可行的.

所以,@丹是对的.正确的方法是编写指向身份验证挑战的Web服务器的链接.

如果您希望客户端加密他们与您的通信,为什么有必要将其包装在QR码中?只需加密并通过HTTPS发送.可以想象发送QR码,但是像发送数据而不是数据一样.它没有多大意义.

  • 是的,有:http://www.qrcode.com/en/codes/sqrc.html,自 2008 年以来 (2认同)

小智 7

有!(尽管上述所有上述复杂的方式误解了这个问题,并说"不,没有").

答案是一个名为QR Droid的Android应用程序.它是一般的QR码阅读器和发生器.

QR Droid可以创建QR码(包括来自普通键盘文本),并且可选地使用所请求的关键字来创建具有加密内容的变体.因为这是此特定应用程序的功能而不是QR,所以需要此应用程序来读取和解密加密的QR代码(它将要求在扫描后解密密钥).

这是创建用户名/密码的便捷方式,可以在需要时立即解密(仅通过QR Droid).

所以,是的.有一个应用程序可以生成带有加密内容的QR码.这是Android App:QR Droid.


Dan*_*Dan 1

您实际上并不需要“加密”的 QR 码 - 您只需要确保信息托管在网络上的任何位置都是加密的。