密码学
对称加密
3des:des三重加密,效率低下。
aes:更难破译,效率较高。
非对称加密
rsa
哈希算法
md5:有漏掉
sha256:比较安全
ca认证
数字签名
使用sha256等哈希对报文进行计算得到摘要。
使用私钥对摘要进行加密得出的字符串就是自己的签名了。
使用公钥可以对签名进行解密,会得到摘要,比对两个摘要。
ssl
握手简略流程
1.A->B问候,发送支持的加密算法列表
2.B->A问候,选择加密算法,发送自己的证书,(可选:serverkeyexchange,请求客户端证书,问候结束)
3.A->B(可选:发送自己证书,clientkeyexchange,证书签名),切换密码,握手结束
4.B->A切换密码,握手结束
tls1.2
tls握手需要两个rtt
总共需要:tcp一个rtt+2=3个rtt
tls1.3
tls握手只需要一个rtt,总共两个rtt
编码技术
protobuf
原理:使用变长编码,key用数字代替。
一般情况下性能比json库要高,数字类型并且是小数字的压缩效果好,字符串二进制则没有压缩效果,大包可以使用zlib,lz4,gzip等压缩。