Hash算法
Hash算法将一段数据映射为唯一的、不可逆的、定长的、极其紧凑的字符串
RSA算法
RSA算法是一种非对称加密算法,可以总结为四句话:公钥加密,私钥解密,私钥签名,公钥验签。加密是为了防止信息泄露,签名是为了防止信息被篡改。
分别对应两种应用场景:
-
秘钥分发->对称加密
- 核心思想:公钥加密,私钥解密
- 分发步骤
- 假设A/B两端
- A端生成了一个密钥对,分发公钥,B端有了公钥
- B端生成一个对称加密的秘钥,使用公钥加密- >密文
- B将密文发送给A
- A接收数据->密文,使用私钥对密文解密->得到对称加密的秘钥
-
数字签名->验证数据是否被篡改,验证数据的发送者
- 核心思想:私钥(加密)签名,公钥(解密)验签
- 步骤
- 假设A/B两端
- A端生成了一个密钥对,分发公钥,自己留私钥
- 签名
- A对原始数据进行哈希运算->哈希值(摘要)
- A使用私钥对摘要进行加密->密文
- A将原始数据+密文发送给B
- 验签
- B接收数据:原始数据+密文
- B使用公钥对密文解密->摘要old->验证数据的发送者为A
- B使用Hash算法对原始数据进行运算->摘要new
- B比较两个摘要
- 相同,校验成功->验证数据未被篡改
- 不同,校验失败->验证数据被篡改
资源网站
简单的应用可以使用这些网站:
公钥私钥生成网站:https://www.bejson.com/enc/rsa/
加密解密签名验证网站:在线RSA加密、解密、签名、验签 - Oren
嵌入式应用
留个坑,之后更新!
本文偏向应用,非常方便理解和使用。如果需要更多原理性讲解,欢迎留言告诉我~