type
status
date
slug
summary
tags
category
icon
password
对称加密
对称加密就是加密和解密用的是一样的密钥。这样带来的问题就是不安全,因为密码可能会被盗。
非对称加密
最常用的是 RSA 算法:有两套密钥,公钥和私钥。私钥自己保留,公钥给那些需要的人。
使用的时候,公钥进行加密,私钥进行解密。
比如 A—>B,A 使用 B 给的公钥进行加密,B收到消息之后,使用自己的私钥进行解密。
但是这样会遇到一个问题:因为公钥是需要传输的,如果有黑客拿到了公钥,冒名给 B 发消息,而且拿到信息的时候怎么防止被篡改。
发送消息的时候可以加上签名。
在发送消息的时候也会带上一段密文,也是数字签名,拿到消息的时候先进行验签,看内容是否被篡改过。
数字签名使用的是摘要算法,比如 md5。根据发送的密文生成md5 签名,因为 md5 是不可逆的。B 拿到密文之后,也根据摘要算法生成 md5签名,进行对比。如果没有篡改过,那么生成的 md5 签名是一样的。
但是黑客可能会把原文和摘要都改了,所以把生成的 md5 签名,再通过私钥进行加密。
B 拿到之后,先使用对应的公钥对签名进行解密。然后再对照签名是否一样。
私钥是自己的,即使黑客拿到了公钥,但因为没有私钥,不能修改原文之后生成新的签名,所以可以防止信息被篡改。
数字证书
谁都可以生成公钥和私钥。如果在给一个公钥的时候冒充某个人,那么这个人以后接受到的消息可能就是黑客发送的消息。
所以在公钥上要标注所有者,要让对方知道这个公钥是谁的。
也就是说,证书不能直接颁发,要以证书的形式发送,这样可以知道这个公钥是谁的。

image-20230731141619023