加密传输方式
- 主要有两种,一种是对称加密(想想 shadowsocks),另外一种是非对称加密
对称加密
对称加密算法在加密和解密的时候用的是同一个秘钥
对称加密模式:
- 甲方选择某一种加密规则,对信息进行加密
- 乙方使用同一种规则,对信息进行解密
客户端和服务端进行通信,采用对称加密,如果只用一个秘钥,很容易破解;如果每次用不同的,海量秘钥的管理和传输成本又比较高,所以可以采用非对称加密。
非对称加密
需要两个密钥,一个是公钥,一个是私钥
非对称加密模式:
- 乙方生成两把密钥(公钥和私钥)。公钥是公开的,任何人都可以获得,私钥则是保密的。
- 甲方获得乙方的公钥后,用它对信息进行加密
- 乙方拿到加密后的数据后,用私钥进行解密
即使黑客拿到了公钥,没有私钥也是没有办法解密,不考虑彩虹表的情况下,完全可以长期使用一对私钥
什么是彩虹表
彩虹表是一个用于加密散列函数逆运算的预先计算好的表,常用于破解加密过的密码散列。 查找表常常用于包含有限字符固定长度纯文本密码的加密。这是以空间换时间的典型实践,在每一次尝试都计算的暴力破解中使用更少的计算能力和更多的储存空间,但却比简单的每个输入一条散列的翻查表使用更少的储存空间和更多的计算性能。
RSA 算法
最经典的非对称加密算法是 RSA
RSA 公钥加密算法是 1977 年由罗纳德·李维斯特(Ron Rivest)、阿迪·萨莫尔(Adi Shamir)和伦纳德·阿德曼(Leonard Adleman)一起提出的。公钥私钥成对出现,用其中一个加密只能用另一个解密,通常用公钥加密私钥解密。