由于HTTP在网络中是明文传输的,所以数据在传输过程中很容易被截取,这时就会有一些加密算法及方式出来,比如对称加密、非对称加密等方式,在HTTPS中加密其实是在TCP和HTTP之间加了一层SSL/TLS协议用于加密。
对称加密其实就是发送方和接收方都拥有一把相同的密钥,发送方在发送之前会对数据通过密钥进行加密,然后传输到接收方,接收方会通过密钥进行解密获取数据。
在浏览器和服务器之间交互也是这样的,服务端拥有这把密钥,客户端需要请求服务端获取这个密钥,获取到密钥之后就会按照对称密钥加密流程进行工作,以下为正常运行过程:
在对称加密中,浏览器需要先向服务器请求获取密钥,在获取密钥的过程中就需要传输密钥,而HTTP本身就是铭文的,密钥就会暴露在网络传输当中,黑客就会截取这个密钥窃取数据甚至篡改数据,如下图:
非对称加密是有两个密钥,分别是公钥和私钥,公钥会暴露在网络传输当中,而私钥只能存在于发送方,并且非对称加密中的加密及解密规则如下:
【注意】:公钥加密,公钥不可以解密
在浏览器和服务器中,公钥和私钥都在服务器中,浏览器需要先请求服务器获取公钥,服务器发送数据通过私钥进行加密,浏览器通过公钥进行解密获取数据。
在非对称加密中需要使用两个密钥,公钥和私钥,在非对称加密中效率就会变得很低,所以一般会选择先用非对称加密传的形式传输对称加密的密钥,后面使用对称加密来传输。
在非对称加密中,服务器公钥和服务器私钥都存在于服务器端,所以客户端先要请求服务器获取服务器公钥,但是,HTTP是明文传输的,所以在获取服务器公钥时会被黑客截取,造成安全问题,如下图:
在非对称加密中,安全问题主要是服务器如何向客户端传输服务器公钥,所以就有了CA机构,这些机构是被信任的,CA机构也是拥有其CA公钥及CA私钥的,并且CA公钥存在于操作系统内,即当安装操作系统时就会带有CA公钥,因此会使用CA机构来进行非对称加密的验证,如下图:
服务器将自己的服务器公钥给CA机构,CA机构会使用服务器公钥及服务器信息制作证书,证书中几个重要信息如下:
数字签名:CA机构使用CA私钥对服务器公钥进行加密,生成数字签名
摘要:CA机构使用hash算法对服务器公钥进行加密,生成摘要
哈希算法:生成摘要的哈希算法也保存在证书中
证书制作完成之后,CA机构会使用CA私钥对证书进行加密,将加密后的证书发送给服务器,流程如下图:
有了CA机构后,服务器就会把服务器公钥存在证书中,通过证书进行传输,客户端拿到证书之后会对其进行验证,验证过程如下:
根据上图可以看到最开始访问的jd.com是一个http请求,会被重定向到https的一个网站,那如果在重定向之前拦截这个请求,然后仿照一个和京东一模一样的网站,是不是就可以钓鱼了呢?
【注意】:对于本文的任何意见和建议,欢迎大家在评论区批评指正。
原文:http://api.jquery.com/live/Use of the.live()method is no longer recommended since later versions of jQuery offer better methods that do not have its drawbacks. In particular, the following ...
将两张网卡绑定,共用一个IP,实现冗余效果。实际上linux双网卡的绑定模式有7种:安装负载软件apt-get install ifenslave加载模块及配置负载vi /etc/modules添加bonding mode=0 miimon=100miimon是10ms监测一次网卡状态配置bond0注:bond IP与成员口的IP不能一致,如果不想成员口IP获得本网段地址,可以随便配置一个。
知乎链接:https://zhuanlan.zhihu.com/p/301027963欢迎下载app============================================1.背景要做一个视频交友软件,为了省时间,从市面上买了一个和需求比较接近的app源码(这个源码,一般被别人用来搞一些涉黄直播),两个月改造完成后,准备上架应用市场,发现只要是使用腾讯安全引擎的商店都会检测出风险,比如腾讯应用宝、华为应用商店、三星应用商店。腾讯云的移动应用安全检测结果如下:被腾讯云移动应用安
通过 Selenium 提供的ActionChains类来实现from selenium import webdriverdriver = webdriver.Chrome(r'f:\chromedriver.exe')driver.implicitly_wait(5)driver.get('https://www.baidu.com/')from selenium.webdriver.common.action_chains import ActionChainsac ..
org.springframework.orm.hibernate3.SessionFactoryUtils Hibernate Session处理协助类,允许事务范围内的Session重用。同样提供了异常信息的转义。支持受Spring管理及不受Spring管理的JTA事务同步(例如简单JTA或者EJB CMT),透明的支持事务范围内的Hibernate Sessions。注意:对于不...
最近开始研究如何对手机应用中的识别算法进行加速,搜索后发现了小米的MACE。Mobile AI Compute Engine (MACE) 是一个专为移动端异构计算设备优化的深度学习前向预测框架。 覆盖了常见的移动端计算设备(CPU,GPU和DSP)。支持的硬件加速比较全面,是小米提供的一个比较有诚意的框架。这篇博文主要记录一下环境的配置,以及把小米提供的例子运行一下,以这样一个过程来熟悉...
使用嵌套循环打印 *型 钻石图案/*********************************题目:使用嵌套循环打印 *型 钻石图案 作者:墨白日期:2020/6/27*********************************/#include<iostream>using namespace std;int main(){ cout << "请输入阶数n: "<<endl; int n; while (cin >
当布谷鸟的第一声鸣叫盘旋在村子上空,乡村五月的空气里便会氤氲沸腾起一阵阵麦香。和着沁人心脾的麦香,乡亲们也迎来了一年中忙碌而充实的季节。 过麦,在乡亲们眼里,很有仪式感。一年的收成如何决定了一年生活质量的好坏,所以过麦,显得很隆重。离收麦还有个把月的时间,乡亲们就早早为过麦做准备了。过年时没舍得吃完的腊肉此时便派上了用场,再腌上一坛子鸭蛋鹅蛋或是鸡蛋,到集上买点干鱼干虾。再把...
[FAILED] Failed to activate swap /swapfile.[DEPEND] Dependency failed for Swap.开机时报错如上, 开机之后交换文件无法正确被挂载。因为之前使用g++编译时报错:g++: internal compiler error: Killed (program cc1plus)说是因为内存不足,创建了交换分区后OK了,编译完成后又给删除了。然后重启系统后就出现上面的错误了。因此用dd重新分配即可.sudo dd if=/.
PCL学习笔记——利用KDTree进行近邻搜索k-d树(k-dimensional树的简称),是一种分割k维数据空间的数据结构。主要应用于多维空间关键数据的搜索(如:范围搜索和最近邻搜索)。K-D树是二进制空间分割树的特殊的情况。索引结构中相似性查询有两种基本的方式:一种是范围查询(range searches),另一种是K近邻查询(K-neighbor searches)。范围查询就是给定查询点和查询距离的阈值,从数据集中找出所有与查询点距离小于阈值的数据;K近邻查询是给定查询点及正整数K,从数据集中
1.是不是一个父类写了一个virtual 函数,如果子类覆盖它的函数不加virtual ,也能实现多态?virtual修饰符会被隐形继承的。private 也被集成,只事派生类没有访问权限而已virtual可加可不加子类的空间里有父类的所有变量(static除外)同一个函数只存在一个实体(inline除外)子类覆盖它的函数不加virtual ,也能实现多态。在子类的空间
????????关注后回复“进群”,拉你进程序员交流群????????机器之心报道编辑:力元、蛋酱不要对 Python 4.0 抱有希望,可能不会有的。——Python 之父 Guid...