数字签名

参考 阮一峰的日志
知乎

数字签名 简单来说是用来加密信息和防止信息在中途被人篡改

打个比方:
susan 和 mario 要互相发送信息,为了防止别人偷看,他们对信息用非对称加密方法加密内容 。
这个加密方法要点在于自己有一把私钥,给其他人想发给你信息的人一把公钥

当别人向我们发送信息,需要使用公钥加密信息。

当我们收到信息,只需要用我们私钥进行解密。如果这个信息被别人截获,因为是不对称加密没有私钥是解密不了的

为了防止信息在送的过程中信息被篡改在这里我们需要用你要发送的内容通过 Hash 生成 Digest(摘要)
Digest(摘要)再用私钥加密形成 数字签名

  • 通过Hash加密来防止其他人获取发送内容并篡改。
  • 私钥加密为了证明这是你发送的。

收信人需要做的是:

把信息的内容和 Signrature(签名)分开, 拿出公钥解密 Signrature(签名)得到 Digest(摘要),对内容用 Hash 看看得出来的 Digest(摘要)是不是和 Signrature(签名)解密出来的一样。(如果内容改动一个字 Hash 后的 Digest 都会不一样 )