|
|
1
4
消息认证码接收消息摘要、秘密和消息。秘密和数据被散列在一起,结果包含在消息中。 知道秘密的消息接收者可以执行相同的摘要计算,并将他的MAC与接收到的消息附带的MAC进行比较。如果他们是平等的,他可以相信信息没有被改变。
然而,仍然有一点混乱。通常,私人签名密钥由其所有者保密,在这种情况下,所有者似乎是客户端。客户端可以加密地证明他们拥有与公钥对应的私钥,而无需披露私钥。 使用数字签名,您可以这样做:
在这里,
但是,如果消息只是“clientID=Alice”,你无法阻止Alice向Bob发送防篡改消息(以换取许可证费用的分摊),你也无法控制Mallory是否侵入Alice的盒子并窃取消息。
|
|
|
2
2
对于这个讨论,让p==hash(q) 然后,您可以轻松地将OpenSSL与php结合使用,用私钥对“p”进行签名,并将该签名与“p”一起保存。
看 openssl_sign 和 openssl_verify 有关在php中使用OpenSSL对数据进行签名和验证的信息和示例: |
|
|
3
1
|
|
|
4
1
|
|
|
5
1
好吧,你指的是 公钥加密 ,特别是创建签名。它遵循复杂的数学原理(你必须实现)。 在基本RSA签名中,您创建签名 s 通过应用以下数学:
是消息(或字符串q), d n 是模数(在私钥和公钥之间共享)。 然后可以通过以下数学公式进行验证:
哪里 当然,密钥必须按照特定的数学标准生成才能工作。有时密钥会变得非常大。同样,所有这些都是通过整数完成的,因此您必须将文本转换为十进制并返回。 编辑: 我想我应该提到你为什么要使用公钥密码学。基本上,它可以防止两件事:消息是可验证的,不能伪造。 |
|
|
6
0
检查方是否可以获得种子?如果种子可以在检查端保持安全(就像在web应用程序上一样),你就可以很容易地做一些类似于使用MD5的HTTP摘要式身份验证的事情。 伪代码:
如果你需要第二方来验证“签名”,那么你可能只想使用PKI。 |
|
|
xchrisbradley · 使用Zig签名对功能选择器进行编码 1 年前 |
|
|
Shirin Ebadi · 加载公钥字节作为DH密钥 1 年前 |
|
YoavKlein · 为什么jwt.io会给我私钥部分来填充? 1 年前 |
|
|
birb · RFC-6238 TOTP实现与示例不匹配 2 年前 |
|
|
Stefan N · 如何生成N个字符的所有字母数字组合[重复] 2 年前 |
|
|
xdivayze · 在线和离线客户端之间的打包密钥交换 2 年前 |