http是超文本传输协议,端口是80,是明文传输数据,不安全,有可能传输过程中数据被人截获,篡改,无法验证信息是否正确,也无法验证发送方和接收方的身份
https是超文本传输安全协议,端口443,它使用了tls/ssl协议加密,保证传输安全。
先说一下对称加密,客户端使用对称密钥对数据进行加密,然后把对称密钥和密文一起发送给服务器,服务器再用对称密钥对密文进行解密。
非对称加密使用公钥加密,私钥解密,其中一方使用对方的公钥(公开的)进行数据加密,对方使用自己的私钥进行解密
https就是两种加密手段都用了,发送密文的一方将对称的密钥进行非对称加密,即用对方的公钥进行加密,然后接收密文的一方用自己的私钥进行解密,这样就获得了对称密钥,然后用对称密钥对数据进行加密,再发送回去。也就是说,对数据的加密是对称的,对密钥的加密是非对称的。
除此之外,为了防止数据在传输过程中被篡改(虽然数据进行加密了,但也可以进行篡改),https采用了数字签名技术,数字签名就是发送方将一些和自己有关的信息使用私钥进行加密,然后随密文一起发送给接收方,接收方再用发送方的公钥进行解密,前提是接收方知道发送方的公钥。但因公钥不能随意在网络中传输,所以引入了第三方认证机构(ca),使用ca证书,证书包含信息摘要和加密的签名,服务端使用ca的私钥进行加密,密文就是签名,客户端再用ca的公钥进行解密,然后验证密文和证书上的信息摘要是否一致,不一致则为非法信息,不接受。