https 密钥 php,https加密方式是什么

0672a1b2ce4cd569e8d6c5148b201f36.png

Https加密

介绍

Http直接通过明文在浏览器和服务器之间传递消息,容易被监听抓取到通信内容。

Https采用对称加密和非对称加密结合的方式来进行通信。

Https不是应用层的新协议,而是Http通信接口用SSL和TLS来加强加密和认证机制。

加密方式

对称加密:加密和解密都是同一个密匙。

非对称加密:密钥成对出现,分为公钥和私钥,公钥加密需要私钥解密,私钥加密需要公钥解密。

两者区别

对称加密速度快,非对称加密速度慢。

对称加密要将密钥暴露,和明文传输没区别。

非对称加密将公钥暴露,供客户端加密,服务端使用私钥解密。

Https加密的选择

对称加密弊端

对称加密速度快,适合Https加密算法,但是服务器和浏览器之间传递密钥的过程被人监听,相当明文传输。

非对称加密弊端

服务端只将公钥暴露,浏览器使用公钥对消息进行非对称加密,服务端用私钥解密。但是服务端向浏览器回复的时候,只能用私钥进行加密,浏览器只能用公钥解密。但是:公钥是所有人都知道的,所有人都可以读取服务端回复的消息来进行解密,所以解决不了服务端向浏览器传递消息。

Https加密

对称加密和非对称加密结合方式

浏览器使用Https的URL访问服务器,建立SSL链接。

服务器收到SSL链接,发送非对称加密的公钥A返回给浏览器

浏览器生成随机数,作为对称加密的密钥B

浏览器使用公钥A,对自己生成的密钥B进行加密,得到密钥C

浏览器将密钥C,发送给服务器。

服务器用私钥D对接受的密钥C进行解密,得到对称加密钥B。

浏览器和服务器之间可以用密钥B作为对称加密密钥进行通信。

总结

这样浏览器和服务器就共享一个对称加密密钥B,重要的是不会被拦截到。只在传输密钥B的时候进行了一次非对称加密,之后就用对称加密进行传送数据。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/540968.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

一个前端框架应该有的一些公共函数

一、防止ie浏览器按backspace回退页面 //防止后退返回页面,如果非文本框、密码框、文本域控件,或控件非可用装填,则禁用后退按键 var uanavigator.userAgent.toLowerCase(); var isIEua.indexOf("msie")>-1; window.document.onkeydown fu…

Kruskal(P)和Prim(K)算法

最小生成树 (Minimum Spanning Tree) An MST is a subset of the edges of the connected, undirected graph that connect all the vertices together, in which there is no forming of a cycle and there should be minimum possible total edge weight. MST是已连接的无向图…

java get post 注解,GET/POST接收或发送数据的问题

在文章开始,先来回忆一下GET、POST这两种请求方式的区别。❈Http定义了与服务器交互的不同方法,最基本的方法有4种,分别是GET,POST,PUT,DELETE。URL全称是资源描述符,我们可以这样认为&#xff…

mybatis中sql语句传入多个参数方法

1 使用map <select id"selectRole" parameterType"map" resultType"RoleMap">SELECT id, roleName, noteFROM roleWHERE roleName LIKE Concat(%,#{roleName},%)and note like Concat(%,#{note},%)</select> 在接口中如下定义 List&…

kotlin半生对象_Kotlin程序| 随播对象特征

kotlin半生对象伴侣对象 (Companion object) If you need a function or a property to be tied to a class rather than to instances of it (similar to static in java), you can declare it inside a companion object: 如果需要将函数或属性绑定到类而不是实例(类似于java…

mysql安装注意步骤,mysql安装步骤

mysql安装步骤1、在官网下载对应的压缩文件&#xff0c;放到本地文件夹下&#xff0c;解压缩。2、配置Path环境变量&#xff1a;新增mysql的bin文件夹路径&#xff0c;C:\software\mysql-8.0.23-winx64\bin。3、在mysql根目录下新增my.ini配置文件。内容如下&#xff0c;basedi…

maven插件介绍之tomcat7-maven-plugin

tomcat7-maven-plugin插件的pom.xml依赖为&#xff1a; <dependency><groupId>org.apache.tomcat.maven</groupId><artifactId>tomcat7-maven-plugin</artifactId><version>2.2</version> </dependency>一&#xff1a;直接执行…

在Python中模拟do-while循环

Python as a language doesnt support the do-while loop. However, we can have a workaround to emulate the do-while loop. Python作为一种语言不支持do-while循环。 但是&#xff0c;我们可以采用一种变通方法来模拟do-while循环 。 The syntax for do-while is as follo…

织梦cms生成首页html的php文件,织梦DedeCMS定时自动生成首页HTML的实现方法

只需要制作一个文件然后在首页模板添加一句代码就可以实现让织梦DedeCMS自动生成首页html&#xff0c;具体方法如下&#xff1a;第一步、需要在首页调用随机文章&#xff0c;这样每次自动更新才会有更新的效果&#xff0c;随机文章调用标签如下&#xff1a;{dede:arclist sortr…

Linux下安装Flume

1 下载Flume Welcome to Apache Flume — Apache Flume 下载1.9.0版本 2 上传服务器并解压安装 3 删除lib目录下的guava-11.0.2.jar &#xff08;如同服务器安装了hadoop&#xff0c;则删除&#xff0c;如没有安装hadoop则保留这个文件&#xff0c;否则无法启动flume&#…

Apple新发布的APFS文件系统对用户意味着什么

2016年WWDC大会上&#xff0c;Apple除了公布watchOS、tvOS、macOS以及iOS等一系列系统和软件更新外&#xff0c;还公布了一个名为APFS&#xff08;Apple File System&#xff09;的文件系统。 这一全新文件系统专门针对闪存/SSD进行优化&#xff08;但依然可用于传统机械硬盘&a…

chown –r mysql:mysql,mysql部署,操作及异常处理

1、将mysql-5.1.50-linux-x86_64-glibc23.tar.gz移至/usr/local/目录下&#xff0c;并改名为mysql增加mysql组#groupadd mysql建mysql用户&#xff0c;并加入到mysql组中#useradd –g mysql mysql源码包解压#tar mysql-5.1.50-linux-x86_64-glibc23.tar.gz将解压后的源码包放置…

光伏等新能源信用风险事件频繁爆发

2016年以来&#xff0c;伴随着供给侧改革相关政策陆续出台和落地&#xff0c;去产能、去杠杆诱发信用风险事件陆续爆出。而在“11天威NTN1”、“15云峰PPN001”及“15云峰PPN003”等信用风险事件上&#xff0c;大股东“弃车保帅”行为再现&#xff0c;令本就失去造血能力的企业…

ruby array_Ruby中带有示例的Array.zip()方法

ruby arrayArray.zip()方法 (Array.zip() Method) In this article, we will study about Array.zip() Method. You all must be thinking the method must be doing something which is related to zipping values of the Array instance. It is not as simple as it looks. W…

matlab中迪杰斯特拉算法,dijkstra算法(迪杰斯特拉算法)

单源最短路径算法——Dijkstra算法&lpar;迪杰斯特拉算法&rpar;一 综述 Dijkstra算法(迪杰斯特拉算法)主要是用于求解有向图中单源最短路径问题.其本质是基于贪心策略的(具体见下文).其基本原理如下: (1)初始化:集合vertex_set初始为{sourc ...Dijkstra【迪杰斯特拉算法…

关于概率算法的问题,不知道逻辑错在哪里,求debug

做个骰子成功几率的分析&#xff0c;投n颗骰子&#xff0c;第一次投成功的几率是a,然后投成功的骰子&#xff0c;需要再投1次&#xff0c;这次成功的几率是b。第二次成功的骰子才算最终成功。 要分析出n颗骰子&#xff0c;最终成功0到n颗的概率。 我写了个算法&#xff0c;求出…

tps 交易量_交易处理系统(TPS)

tps 交易量A transaction is a simple process that takes place during business operations. The transaction processing system (TPS) manages the business transactions of the client and therefore helps a companys operations. A TPS registers, as well as all of i…

matlab for循环不覆盖,将输出保存到文本文件而不覆盖和打印矩阵中的N个条目[matlab]...

这是代码&#xff1a;for i 1:4;fileID fopen(testdata.txt, at);fprintf(fileID, this is answer %d\n,i);fprintf(fileID, %5.3e\n, v{i});fclose(fileID);end在记事本中回答&#xff1a;this is answer 11.000e0001.000e0001.000e0001.000e0001.000e0001.000e0000.000e0001…

(转)Redis研究(一)—简介

http://blog.csdn.net/wtyvhreal/article/details/41855327 Redis是一个开源的高性能键值对数据库。它通过提供多种键值数据类型来适应不同场景下的存储需求&#xff0c;并借助许多高层级的接口使其可以胜任如缓存、队列系统等不同的角色。 1.1历史和发展 2008年&#xff0c;意…

c bitset get_Java BitSet get()方法与示例

c bitset getBitSet类的get()方法 (BitSet Class get() method) Syntax: 句法&#xff1a; public boolean get(int bit_in);public BitSet get(int st_in, int en_in);get() method is available in java.util package. get()方法在java.util包中可用。 get(int bit_in) meth…