作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在开发一个移动应用程序,其中用户 A
应实际向用户 B
交付某些内容,而用户 A
必须证明它已交付。
有一个限制:
我考虑过使用密码学来解决这个问题:
安排交货后,会发生以下过程:
用户 B
,应转移到他的移动应用。wellknown+delivery_uuid
字符串使用公钥加密,并传输给用户A
。众所周知
字符串开头,因此用户 B
移动应用可以对其进行解密并验证该消息是否正常。如果有效,应用程序会存储 delivery_uuid
部分,并在用户访问互联网后立即发送到服务器端进行跟踪。用户 B
尝试伪造 delivery_uuid
,它显然不会匹配。用户 A
尝试伪造 QRCode,用户 B
的应用将无法验证该消息。众所周知的
片段,这一事实会使其变得更弱吗?考虑到 key 对仅使用一次。delivery_uuid
delivery_uuid
,则用户 B
将需要依赖用户 A
诚实。我真的知道这个问题很复杂,但如果有人可以帮助我,我真的很感激。
注意:我不确定 Stackoverflow 是否是询问此问题的正确 stackexchange 社区,如果偏离主题,请发表评论。但由于它有一定的逻辑性,我认为这是正确的地方。
最佳答案
好像有点复杂。为什么不呢
UserB(以及安装该应用程序以接收送货的每个用户)都会获得一个公钥/私钥对。私钥仅由UserB持有;如果丢失,可以发行新的一对。同时,公钥是公开的,并且与UserB的身份一起存储在数据库中。
收到包裹后,用户 B 生成一个简单的文本文档,其中包含日期和时间、二维码、接收包裹的人的姓名或任何需要的信息。该文档还包含公钥。任何格式都可以。
UserB 使用其私钥对文档进行签名,并将签名附加到文档末尾。现在您有了一份明文文档,详细说明了所发生的一切,并证明 UserB 同意。
用户 B 与用户 A 共享文档,和/或将其上传到任何需要的地方,例如:记录系统。 UserA和UserB都可以保留离线副本。
如果需要交付证明,用户A只需出示签名的文件即可。
关于security - 使用公钥/私钥对作为交付证明,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49640987/
我是一名优秀的程序员,十分优秀!