签名与摘要个人总结
前些日子发现自己对于签名算法以及摘要算法有点概念模糊,于是在此做个总结,而且回想了下,发现之前面试的时候对于这两种概念也模糊了
摘要算法
摘要的目的
- 验证消息的完整性
如何实现这个目的?
本质上我们利用的是Hash函数,例如:
x是原本消息
h(x)就是通过hash函数得到的摘要
通常我们是利用Hash函数的性质进行实现,即弱碰撞性以及发生碰撞的概率极低来保证说极大概率原有信息的完整
场景的hash函数
与校验码的相同与区别
相同:
- 都是为了检测出数据发生一定的修改
区别:
- 校验码碰撞的概率是大于摘要算法的
- 一些校验码算法是可逆的,也就是具有一定的纠错功能
签名算法
签名的目的
为了让其他人能够确定签名者
如何实现?
通常是利用非对称密钥
- 用私钥加密对应的信息(通常是加密摘要,因为加密大量数据慢,并且有些算法实现可能对于明文大小也有限制)
- 把对应加密后的消息让其他人得到
- 同时我们公钥暴露在外
- 当使用公钥解密得出的结果与预期结果一致,那么则可确定这个签名者,进而可以确定数据来源是否可信
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了