加密算法包括对称加密和非对称加密,对称加密就是加密和解密用一个秘钥,就像一些电视剧里的电报加密同样,须要一个密码本,发送方经过它加密,接收方经过它解密,所以密码本很是重要,一旦泄露全部信息就会被窃取,也就有了特务护送密码本的桥段,缺点显而易见。git
而非对称加密有两个秘钥,公钥和私钥。例如接收方先生成一对公钥私钥,公钥能够直接不加密直接给发送方,任何人均可以拿到。而后发送方用公钥加密,发送给接收方后,接收方用私钥能够解密,而且只有私钥能解密,公钥不能解密,只能加密。算法
著名的RSA算法就是非对称加密的一种,是基于大数难以进行质因数分解设计的。加密等级越高,RSA位数就越长,目前经常使用1024bits。安全
而且RSA算法除了加密之外还能够实现数字签名。就是证实A发送的信息确实是A发出的。公钥和私钥实际上地位平等,能够互相加密解密。即用公钥加密的密文能够用私钥解密,这就是加密过程,反过来用私钥加密的密文能够用公钥解密,也就是说大众能够用公钥对A发出的密文解密来验证信息确实是A发出的,这就是数字签名。服务器
RSA速度很慢,通常只对少许信息进行加密。经常使用的作法是用RSA给对称加密密钥加密,发送给接收方。而后接收方解密知道了对称加密密钥,双方再经过对称加密方式通信。函数
公钥(Public Key)与私钥(Private Key)是经过一种算法获得的一个密钥对(即一个公钥和一个私钥),公钥是密钥对中公开的部分,私钥则是非公开的部分。公钥一般用于加密会话密钥、验证数字签名,或加密能够用相应的私钥解密的数据。经过这种算法获得的密钥对能保证在世界范围内是惟一的。使用这个密钥对的时候,若是用其中一个密钥加密一段数据,必须用另外一个密钥解密。好比用公钥加密数据就必须用私钥解密,若是用私钥加密也必须用公钥解密,不然解密将不会成功。post
2、数字签名(公钥私钥的一个应用)
1)鲍勃有两把钥匙,一把是公钥,另外一把是私钥网站
2)鲍勃把公钥送给他的朋友们----帕蒂、道格、苏珊----每人一把加密
3)苏珊要给鲍勃写一封保密的信。她写完后用鲍勃的公钥加密,就能够达到保密的效果设计
4)鲍勃收信后,用私钥解密,就看到了信件内容。这里要强调的是,只要鲍勃的私钥不泄露,这封信就是安全的,即便落在别人手里,也没法解密3d
5)鲍勃给苏珊回信,决定采用"数字签名"。他写完后先用Hash函数,生成信件的摘要(digest)
6)而后,鲍勃使用私钥,对这个摘要加密,生成"数字签名"(signature)
7)鲍勃将这个签名,附在信件下面,一块儿发给苏珊
8)苏珊收信后,取下数字签名,用鲍勃的公钥解密,获得信件的摘要。由此证实,这封信确实是鲍勃发出的
9)苏珊再对信件自己使用Hash函数,将获得的结果,与上一步获得的摘要进行对比。若是二者一致,就证实这封信未被修改过
10)复杂的状况出现了。道格想欺骗苏珊,他偷偷使用了苏珊的电脑,用本身的公钥换走了鲍勃的公钥。此时,苏珊实际拥有的是道格的公钥,可是还觉得这是鲍勃的公钥。所以,道格就能够冒充鲍勃,用本身的私钥作成"数字签名",写信给苏珊,让苏珊用假的鲍勃公钥进行解密
11)后来,苏珊感受不对劲,发现本身没法肯定公钥是否真的属于鲍勃。她想到了一个办法,要求鲍勃去找"证书中心"(certificate authority,简称CA),为公钥作认证。证书中心用本身的私钥,对鲍勃的公钥和一些相关信息一块儿加密,生成"数字证书"(Digital Certificate)
12)鲍勃拿到数字证书之后,就能够放心了。之后再给苏珊写信,只要在签名的同时,再附上数字证书就好了
13)苏珊收信后,用CA的公钥解开数字证书,就能够拿到鲍勃真实的公钥了,而后就能证实"数字签名"是否真的是鲍勃签的
HTTP协议的网站容易被篡改和劫持,如一些不良的运营商会经过代理服务器在你的页面中植入广告等。所以不少网站选择使用HTTPS协议。HTTPS协议经过TLS层和证书机制提供了内容加密,身份认证,数据完整性三大功能。