【网络】HTTPS讲解(侧重于加密、秘钥、证书的讲解)

news2024/11/17 15:48:36

HTTPS讲解

  • 前言
  • 正式开始
    • 安全
    • HTTP和HTTPS的关系
    • 什么是加密和解密
    • 为什么要加密
      • 运营商劫持
      • 中间人
    • 常⻅的加密⽅式
      • 对称加密
      • ⾮对称加密
    • 数据摘要
    • 数字签名
    • HTTPS 的⼯作过程
      • ⽅案 1 - 只使⽤对称加密(不可靠)
      • ⽅案 2 - 只使⽤⾮对称加密(不可靠)
      • ⽅案 3 - 双⽅都使⽤⾮对称加密(不可靠)
      • ⽅案 4 - ⾮对称加密 + 对称加密(不可靠)
    • 引⼊证书
      • CA认证
      • 数据签名
      • 完整流程

在这里插入图片描述

前言

前面一篇博客讲的是HTTP,HTTP 协议内容都是按照⽂本的⽅式明⽂传输的,这就导致在传输过程中容易出现⼀些被篡改的情况。

HTTPS 也是⼀个应⽤层协议. 在 HTTP 协议的基础上引⼊了⼀个加密层,所以HTTPS是一种保证数据安全的协议。

如果屏幕前的你还不了解HTTP,可以先看看我前一篇的HTTP协议:【网络】用代码讲解HTTP协议

正式开始

安全

HTTP中用POST方法上传数据时只会保证私密性,而安全并没有得到很好的保障,数据还是明文的在发送。

真正的安全是要对数据做加密的,那么有加密也必定要解密,二者是同时存在的。

那么如何理解安全呢?
网络通信的时候,真正考虑的安全是数据在网络转发过程中是否安全,也就是网络安全。

这里给安全一个定义:破解成本远大于破解收益时,就是安全的。比如说破解一个数据需要花费1000元,但是获取到的收益只有两三毛,那么这种数据破解起来收益太少了,成本过高。或者说对一个数据加密只需要几号秒,但是破解出来需要几十年,也是时间耗费太高了。

不过目前主流的通信方式都是安全的。

HTTP和HTTPS的关系

网络协议栈分四层(不考虑物理层):
在这里插入图片描述

其中Socket接口时处于应用层和传输层之间的,所以上一篇中能够对http进行简单封装,让浏览器帮我们进行解析并显示到浏览器中。

再把各个层经典的协议给出来:
在这里插入图片描述

其中HTTP所在的应用层还可以添加一个小的模块:

在这里插入图片描述

其中这个TLS/SSL是可选的。

如果HTTP直接往传输层走就是上一篇中的HTTP,但如果HTTP 和 TLS/SSL一块的话就是本篇中的HTTPS:
在这里插入图片描述

那么二者传输数据的时候就是这样:
在这里插入图片描述

HTTPS传输和发送都要经过那一小块加密和解密,相当于是又在应用层和传输层又加了一层安全层,所以在网络中传输的数据是一定经过加密的,当有恶意分子拿到数据后也干不了什么操作,除非是进行破解。这就是HTTPS的一个概况。

什么是加密和解密

加密就是把 明⽂ (要传输的信息)进⾏⼀系列变换,⽣成 密⽂。
解密就是把 密⽂ 再进⾏⼀系列变换, 还原成 明⽂。

在这个加密和解密的过程中, 往往需要⼀个或者多个中间的数据, 辅助进⾏这个过程, 这样的数据称为 密钥,就是帮助加密/解密的东西。

来个例子。

下面这两张图是一部电影中的,83 版 <<⽕烧圆明园>> , 有⼈要谋反⼲掉慈禧太后. 恭亲王奕䜣给慈禧递的折⼦. 折⼦内容只是扯⼀扯家常, 套上⼀张挖了洞的纸就能看到真实要表达的意思。

在这里插入图片描述

这里:
明⽂: “当⼼肃顺, 端华, 戴恒” (这⼏个⼈都是当时的权⾂, 后来被慈禧⼀锅端).

密⽂: 奏折全⽂

密钥: 挖了洞的纸

明文就那么几个字,加密之后就变成了信,解密的就是挖洞的纸(秘钥)。

加密解密到如今已经发展成⼀个独⽴的学科: 密码学.
⽽密码学的奠基⼈, 也正是计算机科学的祖师爷之⼀, 艾伦·⻨席森·图灵
在这里插入图片描述

对⽐我们另⼀位祖师爷冯诺依曼
在这里插入图片描述

图灵的头发有点多。

可惜图灵⼤佬年少有为,但是因为⼀些原因遭到英国皇室的迫害, 41岁就英年早逝了。

计算机领域中的最⾼荣誉就是以他名字命名的 “图灵奖”。

为什么要加密

我记得我小时候上网下载东西的时候,那时候啥都不懂,想下载什么就随便搜一下进一个野鸡网站,看见有下载就点,但是总是偶尔下载出来全家桶,非常恶心,后来慢慢了解了点,下载的时候长了点心眼,那种全家桶就没再见过了。

不过有一次我爸下载啥东西的时候下了一堆游戏的全家桶,什么传奇啥的,还是开机自动启动的,重启都没用,那会电脑直接卡的鼠标挪半天挪不动,还好电脑打开稍微缓一段时间鼠标能动了,然后我直接用任务管理器把那些游戏先全关掉再卸载,只能说非常费劲。这种搞全家桶的行为真的非常的恶心。

运营商劫持

来个例子。

这里没有被劫持的状态,点击下载,弹出正确的下载链接:
在这里插入图片描述

如果被劫持了:
在这里插入图片描述

看见没,就变成了QQ浏览器。

由于我们通过⽹络传输的任何的数据包都会经过运营商(电信、移动、联通等)的⽹络设备(路由器, 交换机等), 那么运营商的⽹络设备就可以解析出你传输的数据内容, 并进⾏篡改。

点击 “下载按钮”, 其实就是给服务器发送了⼀个 HTTP 请求, 获取到的 HTTP 响应其实就包含了该APP 的下载链接. 运营商劫持之后, 就发现这个请求是要下载天天动听, 那么就⾃动的把交给⽤⼾的响应给篡改成 “QQ浏览器” 的下载地址了。

在这里插入图片描述

所以:因为http的内容是明⽂传输的,明⽂数据会经过路由器、wifi热点、通信服务运营商、代理服务
器等多个物理节点,如果信息在传输过程中被劫持,传输的内容就完全暴露了。劫持者还可以篡改传
输的信息且不被双⽅察觉,这就是 中间⼈攻击 ,所以我们才需要对信息进⾏加密。

中国互联网发展早期,用的协议都是HTTP协议,因为方便快速,所以就容易出现上方的情况。现在应该很少了。

但是现在还有什么安全下载,又给你下什么360浏览器、安全卫士啥的,很恶心。

导致我现在看到这种图就烦:
在这里插入图片描述

思考下, 为啥运营商要进⾏劫持?
因为到了儿,有钱能使鬼推磨嘛。

不⽌运营商可以劫持, 其他的 ⿊客 也可以⽤类似的⼿段进⾏劫持, 来窃取用户隐私信息, 或者篡改内容。

中间人

客户端和服务端发送的数据要经过谁,谁就是中间人。

关于数据泄漏的问题95%以上都是中间人攻击造成的。

你的手机打开热点,此时你的手机就相当于一个路由器,连上热点的人传输的数据一定会经过你的手机,如果你手机上有抓包的软件且连接你手机的人传输数据时采用的协议是HTTP,那么你就能拿到TA所发送的数据,此时你就是一个中间人,不过没有进行攻击。

所以一些地方的免费WiFi连的时候要谨慎,能不连就不连,人家一抓一个准。

所以在互联⽹上, 明⽂传输是⽐较危险的事情!!!
HTTPS 就是在 HTTP 的基础上进⾏了加密, 进⼀步的来保证用户的信息安全~

常⻅的加密⽅式

对称加密

  • 采⽤单钥密码系统的加密⽅法,同⼀个密钥可以同时⽤作信息的加密和解密,这种加密⽅法称为对称加密,也称为单密钥加密,特征:加密和解密所⽤的密钥是相同的

  • 常⻅对称加密算法(了解):DES、3DES、AES、TDEA、Blowfish、RC2等

  • 特点:算法公开、计算量⼩、加密速度快、加密效率⾼

对称加密其实就是通过同⼀个 “密钥” , 把明⽂加密成密⽂, 并且也能把密⽂解密成明⽂.

⼀个简单的对称加密, 按位异或:
假设 明⽂ a = 1234, 密钥 key = 8888
则加密 a ^ key 得到的密⽂ b 为 9834.
然后针对密⽂ 9834 再次进⾏运算 b ^ key, 得到的就是原来的明⽂ 1234.
(对于字符串的对称加密也是同理, 每⼀个字符都可以表⽰成⼀个数字)
当然, 按位异或只是最简单的对称加密. HTTPS 中并不是使⽤按位异或.

⾮对称加密

  • 需要两个密钥来进⾏加密和解密,这两个密钥是公开密钥(public key,简称公钥)和私有密钥(private key,简称私钥)。

  • 常⻅⾮对称加密算法(了解):RSA,DSA,ECDSA

  • 特点:算法强度复杂、安全性依赖于算法与密钥但是由于其算法复杂,⽽使得加密解密速度没有对称加密解密的速度快。

⾮对称加密要⽤到两个密钥, ⼀个叫做 “公钥”, ⼀个叫做 “私钥”。

公钥和私钥是配对的. 最⼤的缺点就是运算速度⾮常慢,⽐对称加密要慢很多.
• 通过公钥对明⽂加密, 变成密⽂
• 通过私钥对密⽂解密, 变成明⽂

也可以反着⽤
• 通过私钥对明⽂加密, 变成密⽂
• 通过公钥对密⽂解密, 变成明⽂

这里不会讲非对称加密的相关计算细节,这里涉及到数学方面的知识,博主能力有限,不详谈加密的计算细节,对于我们普通程序员来讲,不懂怎么加密计算是没有关系的,以后真正工作的时候可以说是碰不到HTTPS的。

这里只要记住非对称加密需要两个秘钥就行,一个公钥一个私钥,公钥对外,私钥不对外,公钥私钥都可进行加密,也都可进行解密,但是公钥加密就要用私钥解密,私钥加密就要用公钥解密。

数据摘要

数据摘要,也叫做数据指纹。是指将原始发送的文本经过hash算法,得到的一段固定长度的字符串,这个字符串就是数据摘要。

摘要常⻅算法:有MD5、SHA1、SHA256、SHA512等,算法把⽆限的映射成有限,因此可能会有碰撞(两个不同的信息,算出的摘要相同,但是概率⾮常低)。可以认为不同的原始文本经过hash后得到的摘要都是不一样的,就算是改一个标点结果都会差很多。

得到的摘要无法逆向成原始数据,想变回原始数据的话也非常困难。

这里说一个生活中的例子。
百度网盘应该都用过,其中有一个秒传的功能,就是你上传数据的时候根本不需要进行等待,直接就能传上去。这里就用到了摘要,看图:

在这里插入图片描述

你在上传数据前,会先对你的数据hash形成摘要:
在这里插入图片描述
用百度网盘的人非常多,每个人都可以向服务器上传资源,可能你今天想要上传的数据在以前已经被别人上传过了,而且是一模一样的数据,网盘的服务器中会有不同数据hash后形成的摘要放到一块。所以在传输数据前会先将摘要传给服务器,把你的数据形成的摘要在服务器中查找一下,如果找到了,那么就直接在你所对应的服务器路径下搞一个软链接指向之前已经上传过的数据(大多数公司的服务器也是用Linux搞的),这就是秒传,创建一个软连接就是简单的创建一个文件,所以会非常快。如果说你的数据形成的摘要没找到,那么就会按照每秒几MB慢慢传。
在这里插入图片描述

再来个例子,一般公司里面注册用户,用户的密码在公司中是一定不能被他人看到的,所以公司的数据库中一般不会直接保存用户的密码,而是保存密码摘要,登录的时候对密码采用hash算法形成摘要,然后再拿着用户名和密码摘要到数据库中查找。

数字签名

摘要经过加密,就得到数字签名(后⾯细说)。

数据摘要严格意义上讲不叫加密,因为能加密就得要能解密,但是摘要后无法解密,无法逆向退出原始数据。

数据摘要和加密算法的区别是,摘要严格意义不是加密,因为没有解密,因为从摘要很难反推原信息,所以摘要通常⽤来进⾏数据对⽐。

HTTPS 的⼯作过程

既然要保证数据安全, 就需要进⾏ “加密”.

⽹络传输中不再直接传输明⽂了, ⽽是加密之后的 “密⽂”.

加密的⽅式有很多, 但是整体可以分成刚刚说过的两⼤类: 对称加密 和 ⾮对称加密

⽅案 1 - 只使⽤对称加密(不可靠)

如果通信双⽅都各⾃持有同⼀个密钥X。

首先得让服务器和客户端都能确定同一个秘钥。

来画画图:
在这里插入图片描述

先让一方定下来一个对称秘钥x,就让服务端确定,客户端来获取。

在这里插入图片描述

但是这种方法没用。

因为黑客可以在中间截取到服务端发给客户端包含秘钥的报文,并在报文中提取到秘钥x。
在这里插入图片描述

所以这种方式不可靠。

⽅案 2 - 只使⽤⾮对称加密(不可靠)

还是让服务端确定一对公钥和私钥:

在这里插入图片描述

然后让客户端获取:
在这里插入图片描述

后续通信就通过这一对公钥和私钥加密解密:
在这里插入图片描述

但是不行,黑客可以在开头获取公钥S。这样服务端的数据就不保了。

在这里插入图片描述

所以不可靠。

⽅案 3 - 双⽅都使⽤⾮对称加密(不可靠)

服务端和客户端都产生一对公钥和私钥。

服务端和客户端都公开其公钥。

在这里插入图片描述

获取对方公钥:
在这里插入图片描述

此时客户端有: C, C’, S;服务端有: S, S’, C。若后续用私钥进行加密,那么自身的公钥也就没什么用了,除掉自身公钥。

客户端:C’, S
服务端:S’, C

那么后续通信时,客户端发送数据通过C’加密,服务端接收后用C解密。服务端发送数据时用S’加密,客户端接受后用S解密。如图:
在这里插入图片描述

但是这样也不行,黑客还是能在最开始的时候获取到所有的公钥。

在这里插入图片描述

所以也不可靠。

而且双方都用非对称加密,效率会很低。

⽐较理想的做法, 就是能在客户端和服务器建⽴连接的时候, 双⽅协商确定这次的密钥是啥。
在这里插入图片描述
但是如果直接把密钥明⽂传输, 那么⿊客也就能获得密钥了~~ 此时后续的加密操作就形同虚设了.
因此密钥的传输也必须加密传输!

但是要想对密钥进⾏对称加密, 就仍然需要先协商确定⼀个 “密钥的密钥”. 这就成了 “先有鸡还是先有
蛋” 的问题了. 此时密钥的传输再⽤对称加密就⾏不通了。

⽅案 4 - ⾮对称加密 + 对称加密(不可靠)

• 服务端具有⾮对称公钥S和私钥S’
• 客户端发起https请求,获取服务端公钥S
• 客户端在本地⽣成对称密钥C, 通过公钥S加密, 发送给服务器.
• 由于中间的⽹络设备没有私钥, 即使截获了数据, 也⽆法还原出内部的原⽂, 也就⽆法获取到对称密

• 服务器通过私钥S’解密, 还原出客户端发送的对称密钥C. 并且使⽤这个对称密钥加密给客户端返回
的响应数据.

在这里插入图片描述

上面的这个阶段就叫做秘钥协商阶段。

那么此时客户端和服务端都确定了对称秘钥X。

在这里插入图片描述

后面这里就是通信阶段。

后续通信时即使黑客获取到了公钥S,也没法用S对SX进行解密,那就获取不到X了,这样就安全了吗?

并没有,黑客能获取到服务端的公钥S,获取到之后,黑客还可以自己搞一套公钥K和私钥K’,然后
将报文中的S改为K,再将发送给客户端,这样客户端以为自己得到了服务端的公钥S,但其实是黑客的公钥K。
在这里插入图片描述
所以说还是不安全。

虽然上⾯已经⽐较接近答案了,但是依旧有安全问题。

只要已经交换了秘钥,中间人来了就完了,此时就可正常通信。

但是只要中间人在最开始的时候就可以篡改替换,就没法通信了。

上面的四种方法都不行,这种中间人攻击能够成功,本质上是中间人能对数据做篡改并且client端无法验证收到的公钥是目标服务器的公钥还是黑客的公钥。

那么必须得解决这两个问题:

  1. 不要让中间人篡改
  2. 客户端能够验证服务端的公钥是否有效。

引⼊证书

啥是证书?
说说日常生活。

某天,大街上,有警察巡逻。

此时街上有一个长得贼眉鼠眼的,走路很猥琐,此时经常快步上前盘问此人,警察第一句有效的话术是什么?

应该是请出示你的证件。也就是身份证。

那么如果此人拿了一张身份证,警察就会对比对比长相,验证一下身份证。

如果核验通过了,那么就可以放此人离开;但是如果核验没通过,此人就走不了喽。

为什么有效证件是身份证?不是其他的驾照啥的,医保卡啥的?
因为身份证是用于证明居住在中华人民共和国境内的公民身份证明文件。要是政府都没法相信的话,那就没啥可信的了。

警察相信身份证,本质上是相信颁发身份证的机构。

所以颁发一个证书,需要一个权威机构,而这里要说的权威机构就是CA机构,是一个全球性的机构。

CA认证

CA机构会为需要HTTPS的企业/公司/组织/个人颁发CA证书。

服务端在使⽤HTTPS前,需要向CA机构申领⼀份数字证书,数字证书⾥含有证书申请者信息、公钥信息等。证书就如⾝份证,证明服务端公钥的权威性。

在这里插入图片描述

当服务端申请CA证书的时候,CA机构会对该服务端进⾏审核,并专⻔为该⽹站形成数字签名,过程如下:

  1. CA机构拥有自己的⾮对称加密的私钥A和公钥A’
  2. CA机构对服务端申请的证书明⽂数据进⾏hash,形成数据摘要
  3. 然后对数据摘要⽤CA私钥A’加密,得到数字签名S

服务端申请的证书明⽂和数字签名S共同组成了数字证书,这样⼀份数字证书就可以颁发给服务端了。

而客户端操作系统和浏览器中已内置了受信任的证书发布机构,其中就包含了CA机构的公钥。

服务端要向CA机构申请证书。说明什么,一个公司,要向CA机构申请证书,像普通的程序员是不可能接触到的,像大公司,人家早期就搞好了HTTPS,我们后面进去根本就不用管这,像小公司,如果你是一个leader,那有可能会让你负责搞这个申请。反正正常程序员一般不会接触到HTTPS的。

数据签名

刚刚简单提了一嘴数据签名。

原始的数据通过散列获取摘要,摘要再通过加密就是签名。

如图:
在这里插入图片描述

再来添加一点东西:
在这里插入图片描述

这里带签名的数据就是服务器要向客户端发送的东西。其中包含了服务器的公钥。

客户端接收到后会进行以下操作:
在这里插入图片描述

注意两点,浏览器中内置了CA机构的公钥,上图数据中包含了服务器的公钥。

所以整个流程就是这样:
在这里插入图片描述

其中就算黑客最开始劫持到了证书,TA也没法修改。如果改了正文不改签名,或者是改了签名不改正文,那么传到客户端后证书就没法验证成功。

就算中黑客自己定义了公钥和私钥k, k’,并将正文中服务端的公钥改为自己的公钥K,但TA改不了签名,因为TA没有CA机构的私钥,客户端在解密签名的时候用的是CA的公钥,就算TA把签名改成了用TA的私钥k’加密的也是没用的,客户端不会用TA的公钥k,而是用CA的公钥解k’加密的签名,那么签名解密后的摘要和TAhash后的摘要是不一样的。

再者说,如果中间人自己开了家公司并且还申请了证书,中间把整个证书替换掉,也没用,因为证书中是有其域名的(前面介绍证书的图中有),全部替换,域名就改了,意思就是客户本来想访问腾讯的官网,但是中间人将整个证书替换,换成了一个长得很像的名字为腾迅的官网,但是根本就不是一个,眼见的同学就发现了,那么就不会被骗。

所以说这里就非常安全了,因为中间人不会得到CA机构的私钥,那么TA就改不了证书。

完整流程

左侧是客户端,右侧是服务端:

在这里插入图片描述

第⼀组(⾮对称加密): ⽤于校验证书是否被篡改. 服务器持有私钥(私钥在形成CSR⽂件与申请证书时获得), 客户端持有公钥(操作系统包含了可信任的 CA 认证机构有哪些, 同时持有对应的公钥). 服务器客户端请求时,返回携带签名的证书. 客户端通过这个公钥进⾏证书验证, 保证证书的合法性,进⼀步保
证证书中携带的服务端公钥权威性。

第⼆组(⾮对称加密): ⽤于协商⽣成对称加密的密钥. 客户端⽤收到的CA证书中服务器的公钥(是可被信任的)给随机⽣成的对称加密的密钥加密, 传输给服务器, 服务器通过私钥解密获取到对称加密密钥.

第三组(对称加密): 客户端和服务器后续传输的数据都通过这个对称密钥加密解密.

其实⼀切的关键都是围绕这个对称加密的密钥. 其他的机制都是辅助这个密钥⼯作的.

  • 第⼆组⾮对称加密的密钥是为了让客户端把这个对称密钥传给服务器.
  • 第⼀组⾮对称加密的密钥是为了让客户端拿到第⼆组⾮对称加密的公钥

到此结束。。。

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

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

相关文章

JavaWeb——IDEA相关配置(Maven配置以及创建自己的第一个Maven项目)

写在前面&#xff1a; 笔者根据狂神说的javaweb视频&#xff0c;一步一步跟着配置IDEA中的Maven&#xff0c;在后面&#xff0c;笔者将讲述自己如何从0配置Maven以及创建自己的第一个Maven项目&#xff0c;笔者将自己的心路历程&#xff0c;包括配置的过程&#xff0c;都以文字…

二进制明文字符串加密:实现原理

二进制明文字符串加密:实现原理 背景 这里就不多做解释了&#xff0c;明文字符串暴露就是最好的逆向分析指引。无论是恶意攻击样本还是有一定安全需求的组件&#xff0c;直接暴露程序中的明文字符串会大幅降低外部的分析成本。所以需要在编译出的二进制中隐藏字符串。不过需要…

大数据技术学习笔记(二)—— Hadoop运行环境的搭建

目录 1 模版虚拟机准备1.1 修改主机名1.2 修改hosts文件1.3 修改IP地址1.3.1 查看网络IP和网关1.3.2 修改IP地址 1.4 关闭防火墙1.5 创建普通用户1.6 创建所需目录1.7 卸载虚拟机自带的open JDK1.8 重启虚拟机 2 克隆虚拟机3 在hadoop101上安装JDK3.1 传输安装包并解压3.2 配置…

最详细STM32,cubeMX外部中断

这篇文章将详细介绍 cubeMX外部中断的配置&#xff0c;实现过程。 文章目录 前言一、外部中断的基础知识。二、cubeMX 配置外部中断三、自动生成的代码解析四、代码实现。总结 前言 实验开发板&#xff1a;STM32F103C8T6。所需软件&#xff1a;keil5 &#xff0c; cubeMX 。实…

16 Transformer 的编码器(Encodes)——我在做更优秀的词向量

博客配套视频链接: https://space.bilibili.com/383551518?spm_id_from=333.1007.0.0 b 站直接看 配套 github 链接:https://github.com/nickchen121/Pre-training-language-model 配套博客链接:https://www.cnblogs.com/nickchen121/p/15105048.html Transformer 框架 seq…

解决osg绘制场景时因Z冲突导致重影或闪烁等不正常情况

目录 1. 问题的提出 2. Z冲突&#xff08;z-fighting&#xff09;简介 2.1. Z冲突&#xff08;z-fighting&#xff09;产生的原因 2.2. 如何消除Z冲突&#xff08;z-fighting&#xff09; 3. 代码实现 1. 问题的提出 今天绘制了一个棋盘格&#xff0c;鼠标在棋盘格上单击…

基于springboot实现学生综合测评系统项目【项目源码+论文说明】计算机毕业设计

基于springboot实现学生综合测评系统演示 摘要 随着信息化时代的到来&#xff0c;管理系统都趋向于智能化、系统化&#xff0c;学生综合测评系统也不例外&#xff0c;但目前国内仍都使用人工管理&#xff0c;学校规模越来越大&#xff0c;同时信息量也越来越庞大&#xff0c;人…

基于Android系统PJSIP库植入g729编码

基于Android系统PJSIP库植入g729编码 前言操作步骤1.从仓库下载最新的 PJSIP。3.将你的PJSIP项目中的所有文件作为给定补丁中的目录。4.按照 pjproject-2.5.diff 的说明应用更改。5.构建。 前言 有时候由于工作的需求&#xff0c;我们需要基于Android系统的PJSIP库支持G.729编…

微信小程序三种授权登录以及授权登录流程讲解

&#x1f389;&#x1f389;欢迎来到我的CSDN主页&#xff01;&#x1f389;&#x1f389; &#x1f3c5;我是Java方文山&#xff0c;一个在CSDN分享笔记的博主。&#x1f4da;&#x1f4da; &#x1f31f;推荐给大家我的专栏《微信小程序开发实战》。&#x1f3af;&#x1f3a…

链表专题回顾

移除链表元素 给你一个链表的头节点 head 和一个整数 val &#xff0c;请你删除链表中所有满足 Node.val val 的节点&#xff0c;并返回 新的头节点 。 /*** Definition for singly-linked list.//注意基本的链表定义方法* public class ListNode {* int val;* List…

【C++】stackqueue

适配器是一种设计模式 &#xff0c; 该种模式是将一个类的接口转换成客户希望的另外一个接口 。 虽然 stack 和 queue 中也可以存放元素&#xff0c;但在 STL 中并没有将其划分在容器的行列&#xff0c;而是将其称为 容器适配 器 &#xff0c;这是因为 stack 和队列只是对其他容…

系统架构之微服务架构

微服务架构 一.传统的单体架构与微服务架构的区别1.1 单体架构1.1.1 优点1.1.2 缺点 1.2 微服务架构1.2.1 优点1.2.2 面临的问题与挑战 二. 微服务架构模式方案2.1 聚合器微服务2.2 链式微服务2.3 数据共享微服务2.4 异步消息传递微服务 三. SOA与微服务的区别 微服务&#xff…

【数据分享】2022年我国30米分辨率的山体阴影数据(免费获取)

地形数据&#xff0c;也叫DEM数据&#xff0c;是我们在各项研究中最常使用的数据之一。之前我们分享过2022年哥白尼30米分辨率的DEM数据&#xff0c;该数据被公认为是全球最佳的开源DEM数据之一&#xff0c;甚至没有之一&#xff01;基于该数据我们处理得到2022年30米分辨率的坡…

flask入门(四)前后端数据传输

文章目录 1、flask后端接收来自前端的数据1&#xff09;如果前端提交的方法为POST2&#xff09;如果前段提交的方法是GET 2、flask后端向前端传数据3、案例参考文献 1、flask后端接收来自前端的数据 1&#xff09;如果前端提交的方法为POST 后端接收时的代码&#xff1a; xx…

移动端游戏软件开发:从创意到发布的全过程

移动游戏开发是一个充满激情和创造力的领域&#xff0c;它为数十亿的移动设备用户提供了娱乐和乐趣。本文将介绍从游戏概念到发布的整个移动端游戏软件开发过程。 1. 游戏概念和设计&#xff1a; 在任何游戏开发项目的起点&#xff0c;都是一个创新的游戏概念。这是决定游戏类…

【力扣刷题】数组实现栈、后缀表达式(逆波兰表达式)求值、中缀表达式转换为后缀表达式(无括号有括号)

&#x1f40c;个人主页&#xff1a; &#x1f40c; 叶落闲庭 &#x1f4a8;我的专栏&#xff1a;&#x1f4a8; c语言 数据结构 javaEE 操作系统 Redis 石可破也&#xff0c;而不可夺坚&#xff1b;丹可磨也&#xff0c;而不可夺赤。 刷题篇 一、数组实现栈1.1 题目描述1.2 思路…

[补题记录] Atcoder Beginner Contest 293(E)

URL&#xff1a;https://atcoder.jp/contests/abc293 目录 E Problem/题意 Thought/思路 Code/代码 E Problem/题意 给出 A、X、M&#xff0c;求 。 Thought/思路 一开始想等比数列求和&#xff0c;但是 m 不保证是质数&#xff0c;所以不能用。 假设 dp[x] 表示&…

SpringMVC(第一个项目HelloWorld))

文章目录 1.在maven引入依赖2.配置web.xml3.创建请求控制器4.创建springMVC的配置文件5.测试HelloWorld总结 1.在maven引入依赖 <dependencies><!-- SpringMVC --><dependency><groupId>org.springframework</groupId><artifactId>spring…

linux minicom 调试串口

1、使用方法 1. 打开终端 2. 输入命令&#xff1a;minicom -D /dev/ttyS0 3. 按下回车键&#xff0c;进入minicom终端界面 4. 在终端界面中发送指令或数据&#xff0c;查看设备返回的数据 5. 按下CtrlA&#xff0c;松开释放&#xff0c;再按下X&#xff0c;退出minicom2、一些…

教你如何打造一款流行的服装定制小程序

随着移动互联网时代的到来&#xff0c;线上商务发展迅猛&#xff0c;服装店也开始积极探索线上销售渠道。其中&#xff0c;小程序成为了服装店主们的首选之一。小程序以其便捷、快速的特点&#xff0c;为服装店的线上经营带来了全新的机遇。接下来&#xff0c;我们将介绍如何通…