数字签名 在wiki百科中或者常识中,我们认为的“数字签名”都是采用 “非对称加密算法”的私钥对摘要进行签名,接收方通过公钥对摘要进行解密,从而完成摘要对比。
openapi 的签名 而在各种 openAPI 的文档中,我们常常看到这样的签名算法: Md5(按照字母排序号的请求参数) 而这种方式从本质上看:其实仅仅是hash+盐的处理。
效果 但以上两种方式,其从效果上看,都可以满足防抵赖、防篡改等目的。
我的问题 所以,我的问题是,到底什么才叫数字签名呢? 难道md5 哈希也算数字签名?
私钥加密,公钥解密的这个过程就叫数字签名,因为只有公钥能打开私钥加密过的数据
文中 md5 的最好叫做“摘要”而不是“签名”,“摘要”指的是消息的指纹信息,而“签名”除了需要消息的指纹信息以外,还需要“身份信息”,这部分是通过非对称加密实现的
如楼上所说,“摘要”只是个指纹信息,主要用作匹配;数字签名则可以携带更多信息;典型场景,就是验证 CA:电脑一般都是内置许多 CA 证书(公钥),打开 Https 显示为加密绿色(chrome),则说明数字签名正确识别,实际上是本地用 CA 公钥解密了数字签名(CA私钥加密)
实际上是本地用 CA 公钥解密了数字签名(CA私钥加密)
不只是用本地 CA 公钥。 是用证书链上所有公钥,首先是网站(域名对应)证书的公钥,然后是上级(中间)公钥。