百度:都可以认证原发性,完整性。但感觉消息认证码由于两端都有会话密钥并不能验证原发性。
- MAC消息认证码:对原文hash产生摘要值后,用会话双方的对称会话密钥加密摘要,算法为现有的对称算法,如DES。获取MAC值。
- HMAC消息认证码:特定的mac算法,称为HMAC,在计算hash时传入密钥。获取MAC值。
- 数字签名:消息发送者对原文计算hash,用公钥加密摘要。
校验
- 校验消息认证码:用会话密钥(解密或)还原摘要,验证消息完整性。
- 校验数字签名:接受者本身就有发送消息者的公钥,用公钥解密出摘要。计算原文摘要,验证是否匹配。
注:签名与验证码都没有对原文加密,只是为了保证消息没有被篡改而对摘要加密。相当于盖章。