gpt4 book ai didi

java - 使用数字签名来保护二维码

转载 作者:搜寻专家 更新时间:2023-10-31 20:33:58 25 4
gpt4 key购买 nike

我正在寻找类似“反向非对称密码术”的东西,并遇到了 great post ,这实际上涵盖了我所需要的。

我希望我的应用程序的每个用户都有一个公钥,允许他们解密隐藏在用我的私钥加密的二维码中的消息。我想确保我的系统不会被覆盖我的假二维码所欺骗。接受的答案建议使用数字签名所以我用谷歌搜索 Java tutorial ,展示了如何使用该功能。

这里有点误会。我以为使用数字签名,会有一种简单的情况(我们称之为情况A):

  1. 消息用私钥加密
  2. 用户阅读加密信息
  3. 用户使用公钥解密消息。

但是,我的理解是数字签名更像是:

  1. 使用私钥和消息创建数字签名。
  2. 用户需要原始消息和签名文件。
  3. 用户使用数字签名来验证消息没有被更改并且来 self 。

我在这儿吗?如果是这样,我怎样才能将我的消息和签名都放在二维码中?在 情况 A 的情况下,事情似乎很简单,因为我可以简单地使用 Base64 对加密消息进行编码,并将结果放入 QR 码中。但是,如果不使用编码消息、编码签名、将它们放在一个文件中、对其进行编码、将结果放入代码 等技巧,我似乎无法做同样的事情。那我该怎么做呢?

哦,还有一个answer from question "QR code security"说:

You can put anything you want in a QR code, including Base-64 encoded bytes representing a signed document. No reader will know what to do with it; you'd have to write a custom app that scans and then knows to decode it and act accordingly.

根据前面提到的教程,看起来签名文档本身是不够的。

最佳答案

当我问这个问题时,我假设有某种好习惯或类似的东西。由于没有提供,我决定使用我自己的解决方案,有点类似于 DarkSquirrel42 的建议。

我创建了自己的编码器和解码器。实际上,我完全使用了我在原始帖子中描述的相同技巧。

  1. 在我的消息上签名
  2. 使用 base64 对消息和签名进行编码
  3. 像这样将两个字符串组合成一个字符串

    base64(message)-base64(signature)
  4. Base64() 上面的字符串是这样的:

    base64(base64(message)-base64(signature))
  5. 将该编码字符串放入二维码中。

  6. 我的解码器 - 我解码了 base64 的第一层,将结果字符串拆分为 messagesignature 部分(这就是为什么在 3.),然后如果签名正确,我会将消息传递给适当的处理程序。

关于java - 使用数字签名来保护二维码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27713907/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com