http协议都是明文的,是没有加密的,所以其实现在一般大部分应用都是用https协议的,之前是预计SSL协议对http进行加密,后来又升级到了TSL协议来加密,现在称之为SSL/TSL
https工作原理
1、浏览器把自己支持的加密规则发送给网站
2、网站从这套加密规则里选出来一套加密算法和hash算法,然后把自己的身份信息yoghurt证书的方式发回给浏览器,证书里有网站地址、加密公钥、证书颁发机构
3、浏览器验证证书的合法性,然后浏览器地址栏上会出现一把小锁;浏览器接着生成一串随机数密码,然后用证书里的公钥进行加密,这块走的非对称加密;用约定好的hash算法生成握手消息的hash值,然后用密码对消息进行加密,然后把所有东西都发给网站,这块走的对称加密
4、网站从消息里面可以取出来公钥加密后的随机密码,用本地的私钥对消息解密取出来密码,然后用密码解密浏览器发来的握手消息,计算消息的hash值,并验证与浏览器发送过来的hash值是否一致,最后用密码加密一段握手消息,发给浏览器
5、浏览器解密握手消息,然后计算消息的hash值,如果跟网站发来的hash一样,握手就结束,之后所有的数据都会由之前浏览器生成的随机密码,然后用对称加密来进行加密。
常用的非对称加密是RSA算法,对称加密是AES、RC4等,hash算法就是MD5