PS: https就是http和TCP之间有一层SSL层,这一层的实际作用是防止钓鱼和加密。防止钓鱼通过网站的证书,网站必须有CA证书,证书类似于一个解密的签名。另外是加密,加密需要一个密钥交换算法,双方通过交换后的密钥加解密。

http与https有什么区别呢?本文详解http和https的区别。

只要上过网的朋友一定接触过“HTTP”,每次开网页的时候,不管是什么网址,其前面都会出现HTTP字样,比如 “http://www.jzxue.com”、“http://62.135.5.7”等等,而有些时候打开如银行等对安全性要求很高的网站的时候其网 址的前缀又会变作“https”,这两个前缀到底是什么意思?有什么作用呢?相信很多用户朋友对此并不了解。下面就由我给大家解释一二。

http的全称是Hypertext Transfer Protocol Vertion (超文本传输协议),说通俗点就是用网络链接传输文本信息的协议,我们现在所看的各类网页就是这个东东。每次开网页时为什么要出现“http://”呢? 其实这个道理非常简单,因为你要获得网络上超文本信息,那么你肯定要遵循其超文本传输的规范,就如同你是“天地会”成员,你和其他“天地会”成员接头时首 先要说出“地震高岗,一派西山千古秀!”和“门朝大海,三合河水万年流”这样的接头暗号,说出后才能和会友进行沟通。所以每次开网页出现的 “http://”就如同上面所讲的接头暗号,当暗号正确后才能获得相关信息。

  看完了上面的解释,或许你已经懂得是为什么每次开网页时要出现“http”了。那么接下来我们再谈谈为什么有时候网页的接头暗号又会变作“https”呢?
HTTPS的全称是Secure Hypertext Transfer Protocol(安全超文本传输协议),是在http协议基础上增加了使用SSL加密传送信息的协议。我们还是用天地会接头的例子来讲,大家可能觉得每 次天地会接头都是使用“地震高岗,一派西山千古秀!”这类妇孺皆知的接头暗号,这样的组织还有什么安全性可言?只要说出了暗号那么就可能获得天地会的相关 秘密。事实上并不是这样的,如果仅仅是靠一个妇孺皆知的接头暗号进行信息保密,天地会可能早被清兵围剿了,何来那么多传奇故事呢?他们之间的交流除了使用 了接头暗号外,可能还是用了“黑话”,就是一些仅仅只有天地会成员才能听懂的黑话,这样即使天地会成员之间的交谈信息被泄露出去了,没有相关揭秘的东西, 谁也不会知道这些黑话是什么?同样HTTPS协议就如同上面天地会的信息交谈一样,它也将自己需要传输的超文本协议通过SSL加密,让明文变成了“黑话” 即使传输的信息被人捕获,捕获的人也没办法知道其实际内容。 所以http和https之间的区别就在于其传输的内容是否加密和是否是开发性的内容。这也是你为什么常常看见https开头的网址都是一些类似银行网站的这类网址的原因。 下面是http和https的概念 什么是HTTPS: HTTPS(Secure Hypertext Transfer Protocol)安全超文本传输协议。 它是一个安全通信通道,它基于HTTP开发,用于在客户计算机和服务器之间交换信息。它使用安全套接字层(SSL)进行信息交换,简单来说它是HTTP的 安全版。 它是由Netscape开发并内置于其浏览器中,用于对数据进行压缩和解压操作,并返回网络上传送回的结果。HTTPS实际上应用了Netscape的安 全全套接字层(SSL)作为HTTP应用层的子层。(HTTPS使用端口443,而不是象HTTP那样使用端口80来和TCP/IP进行通信。)SSL使 用40 位关键字作为RC4流加密算法,这对于商业信息的加密是合适的。HTTPS和SSL支持使用X.509数字认证,如果需要的话用户可以确认发送者是谁。 HTTPS和HTTP的区别: https协议需要到ca申请证书,一般免费证书很少,需要交费。 http是超文本传输协议,信息是明文传输,https 则是具有安全性的ssl加密传输协议。 http和https使用的是完全不同的连接方式用的端口也不一样,前者是80,后者是443。 http的连接很简单,是无状态的。 HTTPS协议是由SSL+HTTP协议构建的可进行加密传输、身份认证的网络协议,要比http协议安全。 HTTPS解决的问题: 1 . 信任主机的问题. 采用https 的server 必须从CA 申请一个用于证明服务器用途类型的证书. 改证书只有用于对应的server 的时候,客户度才信任次主机。所以目前所有的银行系统网站,关键部分应用都是https 的,客户通过信任该证书,从而信任了该主机,其实这样做效率很低,但是银行更侧重安全。这一点对我们没有任何意义,我们的server 采用的证书不管自己issue 还是从公众的地方issue,客户端都是自己人,所以我们也就肯定信任该server。 2 . 通讯过程中的数据的泄密和被窜改 1)一般意义上的https, 就是 server 有一个证书. a) 主要目的是保证server 就是他声称的server. 这个跟第一点一样. b) 服务端和客户端之间的所有通讯,都是加密的. i. 具体讲,是客户端产生一个对称的密钥,通过server 的证书来交换密钥,一般意义上的握手过程。 ii. 加下来所有的信息往来就都是加密的,第三方即使截获,也没有任何意义,因为他没有密钥,当然窜改也就没有什么意义了。 2)少许对客户端有要求的情况下,会要求客户端也必须有一个证书。 a) 这里客户端证书,其实就类似表示个人信息的时候,除了用户名/密码, 还有一个CA 认证过的身份,个人证书一般来说上别人无法模拟的,所有这样能够更深的确认自己的身份。 b) 目前少数个人银行的专业版是这种做法,具体证书可能是拿U盘作为一个备份的载体。

密钥交换算法

  使用对称加密算法时,密钥交换是个大难题,所以Diffie和Hellman提出了著名的Diffie-Hellman密钥交换算法。

 Diffie-Hellman密钥交换算法原理:
1)Alice与Bob确定两个大素数n和g,这两个数不用保密

(2)Alice选择另一个大随机数x,并计算A如下:A=gx mod n

(3)Alice将A发给Bob

(4)Bob  选择另一个大随机数y,并计算B如下:B=gy mod n

(5)Bob将B发给Alice

(6)计算秘密密钥K1如下:K1=Bx mod n

(7)计算秘密密钥K2如下:K2=Ay mod n

  K1=K2,因此Alice和Bob可以用其进行加解密

RSA加密算法是基于这样的数学事实:两个大素数相乘容易,而对得到的乘积求因子则很难。加密过程如下:

(1)选择两个大素数P、Q
(2)计算N=P*Q
(3)选择一个公钥(加密密钥)E,使其不是(P-1)与(Q-1)的因子
(4)选择私钥(解密密钥)D,满足如下条件:
(D*E) mod (P-1)(Q-1)=1
(5)加密时,明文PT计算密文CT如下:
CT=PTE mod N
(6)解密时,从密文CT计算明文PT如下:
PT=CTDmodN 这也是SSL中会用一种密钥交换算法。

本文转载自:https://www.cnblogs.com/qiangxia/p/5261813.html

http和https的作用与区别的更多相关文章

  1. [转] 详解http和https的作用与区别

    PS: https就是http和TCP之间有一层SSL层,这一层的实际作用是防止钓鱼和加密.防止钓鱼通过网站的证书,网站必须有CA证书,证书类似于一个解密的签名.另外是加密,加密需要一个密钥交换算法, ...

  2. 详解http和https的作用与区别

    PS: https就是http和TCP之间有一层SSL层,这一层的实际作用是防止钓鱼和加密.防止钓鱼通过网站的证书,网站必须有CA证书,证书类似于一个解密的签名.另外是加密,加密需要一个密钥交换算法, ...

  3. eclipse中build path与Web Deployment Assembly的作用,区别

    转自:https://blog.csdn.net/heart_mine/article/details/79402792 以下内容只为做个笔记记录已下,有问题可以留言,欢迎补充. 今天在eclipse ...

  4. js中的new操作符与Object.create()的作用与区别

    js中的new操作符与Object.create()的作用与区别 https://blog.csdn.net/mht1829/article/details/76785231 2017年08月06日 ...

  5. TCP/IP、Http、Https、Socket的区别

    网络由下往上分为物理层.数据链路层.网络层( IP协议).传输层( TCP协议).会话层.表示层和应用层(HTTP协议) 接下来我来说说个人理解其中的TCP/IP.Http.Socket的区别 TCP ...

  6. HTTP和HTTPS以及两者的区别

    HTTP:是互联网上的应用广泛的一种网络协议,是一个客户端和服务器端请求和应答的传输协议,它可以使浏览器更加高效,使网络传输减少. HTTPS:是以安全为目标的HTTP通道,简单讲是HTTP的安全版, ...

  7. Spring,SpringMVC,MyBatis,Hibernate,Servlet的生命周期,jsp有哪些内置对象,Tomcat,Cookie和Session的作用以及区别,oracle,MYSQL等面试题总结

    1. 什么是Spring,谈谈你对Spring的理解 Spring是我们JAVA开发人员在搭建后台时选用的一个轻量级的开源框架,Spring框架目前也是功能丰富,十分优秀企业级采用最多的一个框架. S ...

  8. call apply bind的作用及区别? 应用场景?

    call.apply.bind方法的作用和区别: 这三个方法的作用都是改变函数的执行上下文,换句话说就是改变函数体内部的this指向,以此来扩充函数依赖的作用域 1.call 作用:用于改变方法内部的 ...

  9. Python中class内置方法__init__与__new__作用与区别探究

    背景 最近尝试了解Django中ORM实现的原理,发现其用到了metaclass(元类)这一技术,进一步又涉及到Python class中有两个特殊内置方法__init__与__new__,决定先尝试 ...

随机推荐

  1. Nginx 403 Forbidden 解决方案 史上最靠谱

    原因 1. SELinux为开启状态(enabled) 查看SELinux的状态 sestatus 如果不是 disables , 需要 vi /etc/selinux/config 将以前的 SEL ...

  2. Python 工程管理及 virtualenv 的迁移

    virtualenv 是管理 python 工程的利器,它可以很好的帮你维护项目中的依赖,使用 virtualenv,还能保持 global 库的干净.不会被不同项目中的第三方库所污染. virtua ...

  3. oracle系统化学习笔记

    CentOS 4.x上安装Oracle 9i(3讲) oracle9i非常成熟,刚学主要是学9i比较经典 学会安装9i具有现实意义,先学完9i再学11g等比较好 1.安装centos 2.安装orac ...

  4. 《移山之道》Reading Task——by12061154Joy

    最近因为作业的原因所以接触到了这本书,给我最特别的感觉就是很新鲜,主要是因为这本书是以故事展开的,大概是我读的书太少,基本没有看到过专业书的知识体系是用故事串讲起来的,这样帮助读者理解了一些概念并且不 ...

  5. Linux 第八周实验 进程的切换和系统的一般执行过程

    姬梦馨 原创作品 <Linux内核分析>MOOC课程:http://mooc.study.163.com/course/USTC-1000029000 第八讲 进程的切换和系统的一般执行过 ...

  6. 作业七:Linux内核如何装载和启动一个可执行程序

    作业七:Linux内核如何装载和启动一个可执行程序 一.编译链接的过程和ELF可执行文件格式 可执行文件的创建——预处理.编译和链接 在object文件中有三种主要的类型. 一个可重定位(reloca ...

  7. Beta版会议总结

    开会时间:2015年06月12日 开会地点:基教601 开会人员:李想,王颖瑞,朱少辉,陈晨,侯涛亮. 开会内容:对于6月10日,大一同学的投票情况进行讨论和反思. 讨论结果如下: 一.目前存在的问题 ...

  8. 使用git命令创建分支到团队项目

    背景 在我们的团队中,我作为管理者,创建了一个叫HelloWorld的项目,大家各自在本地进行开发,将自己的工作贡献到我们的团队项目中.为了便于审核,我希望大家先将自己的贡献先放在属于自己的一个分支上 ...

  9. org.apache.ibatis.exceptions.PersistenceException: ### Error querying database. Cause: com.mysql.jdbc.exceptions.jdbc4.CommunicationsException: Communications link failure The last packet sent succ

    数据库 没有开启  连接失败 org.apache.ibatis.exceptions.PersistenceException: ### Error querying database. Cause ...

  10. [转帖]速度快散热好 为什么U.2 SSD还没普及?

    速度快散热好 为什么U.2 SSD还没普及?   经典的影视剧中总有那么几位武林高手,江湖上只闻其名,不见其形.今天我们要聊的这位爷,誓要拳打南山M.2,脚踩北海SATA 3!它就是固态硬盘界久负盛名 ...