【Linux网络】HTTPS【上】{运营商劫持/加密方式/数据摘要/https的诞生}

文章目录

  • 1.引入
    • 1.1http与https
    • 1.2SSL/TLS
    • 1.3VPN
    • 1.4认识
    • 1.5密码学
    • 1.6为什么要加密?
      • 运营商
    • 1.7常见的加密方式
      • 对称加密
      • 非对称加密
  • 2.加密与解密
  • 3.数据摘要 && 数据指纹
      • MD5
    • 数字 签名
      • 理解三者
        • 数据摘要(Digital Digest):
        • 数字指纹(Digital Fingerprinting):
        • 数字签名(Digital Signature):
        • 理解
    • 理解链
  • 4. HTTPS 的工作过程探究【逐步改进,修补漏洞】
    • 方案 1-只使用对称加密
    • 方案 2-只使用非对称加密
    • 方案 3-双方都使用非对称加密
    • 方案4-非对称加密+对称加密

1.引入

1.1http与https

HTTP(Hypertext Transfer Protocol)和HTTPS(HTTP Secure)都是用于在Web应用程序中传输数据的协议,但它们之间存在明显的区别与联系。

首先,我们来讨论它们的区别:

安全性:HTTP使用的是明文传输,这意味着在传输过程中数据可能被截获或被篡改。而HTTPS则通过SSL/TLS协议进行加密传输,这种加密方式可以保护数据在传输过程中的安全,防止数据被窃取或篡改。因此,HTTPS的安全性更高。
证书管理:HTTPS需要使用CA(证书颁发机构)颁发的证书来进行加密和解密操作,而HTTP则不需要证书。因此,在使用HTTPS时,需要配置证书,而HTTP则不需要。
端口号:HTTP默认使用80端口进行通信,而HTTPS默认使用443端口进行通信。
资源消耗:由于HTTPS使用了加密和解密操作,因此在数据传输过程中需要消耗更多的计算资源。
然后,我们来讨论它们的联系:

通信过程:HTTP和HTTPS的通信过程都是客户端向服务器发送请求,服务器返回响应的过程。
应用场景:HTTP和HTTPS都可以用于在Web应用程序中传输数据。然而,由于HTTPS具有更高的安全性,它更适合传输敏感数据,如密码、支付信息等。
基础与升级:HTTPS是在HTTP的基础上增加了SSL/TLS加密协议来保障数据传输的安全性,因此HTTPS可以看作是对HTTP的升级完善。在使用时,两者的数据传输格式和请求方式都是一样的。
综上所述,HTTP和HTTPS在安全性、传输速度和端口号等方面存在较大差异,但在通信过程和应用场景上又存在紧密的联系。在传输敏感数据时,应优先选择HTTPS以确保数据的安全性。

1.2SSL/TLS

SSL(Secure Socket Layer,安全套接层)和TLS(Transport Layer Security,传输层安全性协议)是用于加密和验证应用程序(如浏览器)和Web服务器之间发送的数据的协议。它们都位于可靠的面向连接的网络层协议和应用层协议之间,用于在两个通信应用程序之间提供保密性和数据完整性。

SSL/TLS协议的工作原理主要依赖于两个重要协议:握手协议和记录协议。握手协议负责协商加密算法、哈希算法、加密密钥,同时帮助服务器和客户端相互验证。记录协议则用于封装各种高层协议,包括使用协商好的加密算法和密钥对应用层数据进行加密和解密。

SSL/TLS协议的主要应用场景包括:

网页浏览:当访问一个网站时,如果网址以“https://”开头,就表示该网站使用了SSL/TLS协议,以确保用户与网站之间的通信安全,防止数据在传输过程中被窃取或篡改。
电子邮件:许多电子邮件服务,如Gmail和Outlook,使用SSL/TLS来加密邮件的传输,以保护用户的敏感信息,如登录凭证、联系人和邮件内容不被未经授权的第三方获取。
在线支付:在线支付系统,如PayPal和Stripe,使用SSL/TLS来保护用户的信用卡信息和其他敏感财务数据,以防止数据在传输过程中被截取或篡改,从而保护用户的财务安全。
VPN连接:虚拟专用网络(VPN)通常使用SSL/TLS来加密客户端与服务器之间的通信,以保护用户的隐私并防止互联网服务提供商或其他第三方监听用户的网络流量。
需要注意的是,虽然SSL和TLS在功能上非常相似,但TLS是SSL的继任者,提供了更高级别的安全性和更好的性能。因此,在现代应用中,TLS更受欢迎并得到了更广泛的应用。

1.3VPN

VPN(Virtual Private Network,虚拟私人网络)是一种可以在公共网络上建立加密通道的技术,通过这种技术可以使远程用户访问公司内部网络资源时,实现安全的连接和数据传输。VPN通常用于连接远程用户、分支机构、业务伙伴或移动用户与公司内部网络资源,如文件服务器、数据库、内部网站等。

VPN的工作原理如下:

隧道技术:VPN使用隧道技术来在公共网络上创建一个加密的通信通道,即VPN隧道。这个隧道能够确保数据的保密性和完整性,因为它将数据在发送前进行加密,并在接收端解密。

加密技术:VPN使用各种加密算法(如AES、DES等)来加密传输的数据,确保数据在公共网络上传输时不会被未经授权的第三方截获和读取。

身份验证:在建立VPN连接之前,通常需要身份验证来确保只有经过授权的用户或设备才能访问内部网络资源。这可以通过用户名和密码、证书、预共享密钥等方式实现。

协议支持:VPN可以支持多种协议,如PPTP(Point-to-Point Tunneling Protocol,点对点隧道协议)、L2TP(Layer 2 Tunneling Protocol,第二层隧道协议)、IPsec(Internet Protocol Security,互联网协议安全性)和SSL/TLS VPN等。不同的协议适用于不同的应用场景和安全性要求。

访问控制:VPN可以配置访问控制策略,以限制用户对内部网络资源的访问权限。这有助于防止未经授权的访问和数据泄露。

VPN的应用场景包括:

远程办公:员工可以在家或其他远程位置使用VPN安全地访问公司的内部网络资源,如电子邮件、文件服务器和内部网站。
分支机构连接:不同地理位置的分支机构可以通过VPN连接在一起,共享资源和数据,同时保持通信的安全性。
安全访问公共Wi-Fi:在公共Wi-Fi网络上使用VPN可以防止黑客或恶意用户截获用户的敏感信息。
数据备份和恢复:通过VPN,远程用户可以安全地将数据备份到公司的数据中心,或在需要时从数据中心恢复数据。
需要注意的是,虽然VPN提供了很多安全性优势,但它并不是万能的。在使用VPN时,仍然需要遵循最佳的安全实践,如使用强密码、定期更新软件和操作系统、避免在VPN连接上传输敏感数据等。

1.4认识

有为了数据安全的“白”就有为了破解数据的“黑”。
攻击的成本和数据的价值大小是一个hacker考虑是否攻击的衡量。
SSL/TLS这种权威的官方的加密解密方案,树大招风,总有人破解,所以SSL/TLS是在不断改进的。
公司当然可以自己搞一套加密协议 只不过需要自己维护
在这里插入图片描述

1.5密码学

冯诺依曼

在这里插入图片描述

在这里插入图片描述

1.6为什么要加密?

运营商

在这里插入图片描述

运营商劫持
DNS劫持
在这里插入图片描述
由于我们通过网络传输的任何的数据包都会经过运营商的网络设备(路由器,交换机等),那么运营商的网络设备就可以解析出你传输的数据内容,并进行篡改.欢点击"下载按钮”,其实就是在给服务器发送了一个 HTTP 请求,获取到的 HTTP 响应其实就包含了该APP 的下载链接,运营商劫持之后,就发现这个请求是要下载天天动听,那么就自动的把交给用户的响应给篡改成“QQ浏览器"的下载地址了。所以:因为http的内容是明文传输的,明文数据会经过路由器、wifi热点、通信服务运营商、代理服务器等多个物理节点,如果信息在传输过程中被劫持,传输的内容就完全暴露了。劫持者还可以篡改传输的信息且不被双方察觉,这就是 中间人攻击,所以我们才需要对信息进行加密。

思考下,为啥运营商要进行劫持?
运营商进行劫持的原因主要有以下几个方面:

经济利益:这是运营商进行劫持的主要驱动力。通过劫持用户的网络流量,运营商可以强制用户访问其指定的网站或服务,从而在这些网站上展示广告或推销产品,以此获取额外的收入。特别是HTTP劫持,运营商会在用户与其目的网络服务所建立的专用数据通道中,监视特定数据信息,当满足设定的条件时,就会在正常的数据流中插入精心设计的网络数据报文,目的是让用户端程序解释“错误”的数据,并以弹出新窗口的形式在使用者界面展示宣传性广告或者直接显示某网站的内容。
流量控制:对于小运营商来说,他们有省内流量考核,跨省访问会增加成本输出。因此,为了减少省骨干网络链路的负载压力,尽可能的减少中继链路、远距离骨干链路以及负载能力弱的链路上的流量,运营商可能会选择劫持出省流量。
技术和设备限制:运营商或小区宽带会使用分光器设备,通过映射用户请求流量并获取用户请求响应,运营商可以抢先建立HTTP连接,优先传给用户数据,这样真正提供资源的服务器返回来的数据就自然的被丢弃掉了。
然而,需要强调的是,运营商劫持用户的网络流量是一种不道德且违法的行为,它侵犯了用户的知情权和选择权,也损害了用户的网络安全和隐私。因此,用户应该保持警惕,并采取措施保护自己的网络安全。

不止运营商可以劫持

其他的 黑客 也可以用类似的手段进行劫持,来窃取用户隐私信息,或者篡改内容试想一下,如果黑客在用户登陆支付宝的时候获取到用户账户余额,甚至获取到用户的支付密码,后果不言而喻。在互联网上,明文传输是比较危险的事情!!!HTTPS 就是在 HTTP 的基础上进行了加密,进一步的来保证用户的信息安全。

日常生活

  1. 学校是一个局域网 有路由器 学校的设备会获取到你发起或接收的数据。
  2. 商场里免费wifi 一旦连上 别人可以通过此网络监听你的数据
  3. 电脑连接手机的热点 手机实际上就获取到了电脑的数据

1.7常见的加密方式

对称加密

采用单钥密码系统的加密方法,同一个密钥可以同时用作信息的加密和解密,这种加密方法称为对称加密,也称为单密钥加密,特征: 加密和解密所用的密钥是相同的。
常见对称加密算法(了解): DES、3DES、AES、TDEA、Blowfish、RC2等
特点: 算法公开、计算量小、加密速度快、加密效率高
对称加密其实就是通过同一个"密钥",把明文加密成密文,并且也能把密文解密成明文

对称加密举例

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

非对称加密

需要两个密钥来进行加密和解密,这两个密钥是公开密钥(publickey,简称公钥)和私有密钥(private key,简称私钥)。
常见非对称加密算法(了解): RSA,DSA,ECDSA
特点: 算法强度复杂、安全性依赖于算法与密钥但是由于其算法复杂,而使得加密解密速度没有对称加密解密的速度快。
非对称加密要用到两个密钥,一个叫做"公钥",一个叫做"私钥",
A方案去加密 B方案去解密。若用B来加密,则用A来解密。
用公钥加密,掌握私钥的人很少。相对安全。

2.加密与解密

加密就是把 明文 (要传输的信息)进行一系列变换,生成 密文。
解密就是把 密文 再进行一系列变换,还原成 明文。
在这个加密和解密的过程中,往往需要一个或者多个中间的数据,,辅助进行这个过程,这样的数据称为 密钥。

举例子

有人要谋反干掉慈禧太后,恭亲王奕诉给慈禧递的折子,折子内容只是扯一扯家常,套上一张挖了洞的纸就能看到真实要表达的意思.明文:“当心肃顺,端华,戴恒”(这几个人都是当时的权臣,后来被慈禧一锅端).
密文:奏折全文
密钥: 挖了洞的纸.
明文:套上挖了洞的纸看到的信息

再举例子

A要发送10,与B约定数据异或5,即发送10^5,B收到数据,再异或5,获取10.
10:明文
5:密钥
10^5:密文

3.数据摘要 && 数据指纹

在这里插入图片描述

  1. 数字指纹(数据摘要),其基本原理是利用单向散列函数(Hash函数)对信息进行运算,生成一串固定长度的数字摘要。数字指纹并不是一种加密机制,但可以用来判断数据有没有被窜改
  2. 摘要常见算法:有MD5、SHA1、SHA256、SHA512等,算法把无限的映射成有限,因此可能会有碰撞(两个不同的信息,算出的摘要相同,但是概率非常低)
  3. 摘要特征:和加密算法的区别是,摘要严格意义不是加密,因为没有解密,只不过从摘要很难反推原信息,通常用来进行数据对比

MD5

MD5(Message-Digest Algorithm 5)是一种广泛使用的密码散列函数,它可以产生出一个128位(16字节)的散列值(hash value),用于确保信息传输完整一致。MD5由美国密码学家罗纳德·李维斯特(Ronald Linn Rivest)设计,于1992年公开,用以取代MD4算法。MD5由MD4、MD3、MD2改进而来,主要增强算法复杂度和不可逆性。

MD5算法的原理可简要的叙述为:MD5码以512位分组来处理输入的信息,且每一分组又被划分为16个32位子分组,经过了一系列的处理后,算法的输出由四个32位分组组成,这四个32位分组级联后将生成一个128位散列值。

MD5算法在计算机领域中有广泛的应用,如密码存储、文件完整性检查等。然而,MD5算法也存在一些缺点。首先,MD5算法存在碰撞风险,即不同的输入数据可能会生成相同的摘要。虽然这种概率极低,但在某些特定条件下,仍然可能导致安全隐患。其次,随着计算机技术的发展,MD5算法的抗攻击性逐渐减弱。一些研究者发现了针对MD5算法的攻击方法,使得在某些情况下,攻击者可以伪造或篡改数据。因此,在一些安全性要求较高的场合中,MD5算法已经不再被推荐使用。

总的来说,MD5算法是一种重要的密码散列函数,它在保障信息安全方面发挥了重要作用。然而,由于存在碰撞风险和抗攻击性较弱等缺点,MD5算法在某些场合下已经不再适用,需要寻找更安全的替代方案。

数字 签名

摘要经过加密,就得到数字签名

理解三者

数据摘要(Digital Digest):

数据摘要也称为数字指纹或数字手印,它是一种将任意长度的数据转换成固定长度的短消息的方法。这通常通过哈希函数(Hash Function)来实现,哈希函数是一种可以将任意长度的二进制值映射为较短的固定长度的二进制值的函数。数据摘要具有固定的长度,并且对于不同的输入数据,其摘要结果总是不同的;而对于相同的输入数据,其摘要必定一致。数据摘要主要用于确保数据的完整性和真实性,通过比较原始数据的摘要和接收到的数据的摘要,可以判断数据在传输过程中是否被篡改。
数据摘要是将任意长度的消息变成固定长度的短消息,它类似于一个自变量是消息的函数,也就是Hash函数。它通过对原始数据进行哈希计算生成一段固定长度的摘要值,不同的数据生成不同的摘要值。数字摘要具有不可逆性,即无法从摘要值推导出原始数据。一个标点符号不同 生成的字符串千差万别 。数据摘要通常用于验证数据在传输过程中是否被篡改,以及验证数据在存储过程中是否完整。是否被篡改:两次对同一数据生成的字符串是否相同。

数字指纹(Digital Fingerprinting):

数字指纹主要用于版权保护,其原理是将不同的标志性识别代码——指纹,利用数字水印技术嵌入到数字媒体中,然后将嵌入了指纹的数字媒体分发给用户。发行商发现盗版行为后,就能通过提取盗版产品中的指纹,确定非法复制的来源,对盗版者进行起诉,从而起到版权保护的作用。
数字指纹通常与版权保护和用户跟踪相关。在数字内容分发中,发行商可能会向每个拷贝中嵌入特定的信息(即数字指纹),以便在发现非法分发行为时能够跟踪到具体的用户。数字指纹体制主要由两部分构成:一部分是用于向拷贝中嵌入指纹并对带指纹拷贝进行分发的拷贝分发体制;另一部分是实现对非法分发者进行跟踪并审判的跟踪体制。这种体制通常通过发行商、用户以及可能的登记中心、审判者等实体之间的一系列协议来实现。

数字签名(Digital Signature):

数字签名是一种用于验证数据完整性和来源真实性的技术。它使用公钥加密技术,允许信息的发送者创建一个独特的、无法伪造的签名,接收者可以使用相应的公钥来验证签名的真实性和完整性。数字签名通常包括两种互补的运算:签名运算和验证运算。签名运算用于生成签名,而验证运算则用于检查签名是否有效。数字签名的主要优点是它提供了数据完整性和来源真实性的保证,并且具有不可抵赖性(即签名者无法否认其签名)。

理解
  1. 在一个网站上 用户名+密码 可以唯一标识一个人 但是通过之前讲的cookie我们知道 服务端不会把浏览器发来的账号密码直接返回而是返回一个sessionID 这个ID就可以理解为数据摘要,在该网站内具有唯一性。可以理解为sessionID就是根据某算法生成的字符串。
  2. 百度网盘:A想要上传一个电影,网盘收到该请求并不是直接开始上传,而是根据该电影的二进制计算出数据摘要md,如果该md在网盘的md库里存在,则网盘提示【您是vip用户,可以秒传】,当然我们知道这只是个幌子,实际上网盘只是在其中建立了一个软连接,软连接中存储已经存在的相同的电影资源的路径。如果在md库中没有找到,则开始上传,并在md库中添加md数据摘要。【md用来代表由md5算法生成的字符串】
    在这里插入图片描述

理解链

对http进行对称加密,是否能解决数据通信安全的问题?问题是什么?
为何要用非对称加密?为何不全用非对称加密?

4. HTTPS 的工作过程探究【逐步改进,修补漏洞】

既然要保证数据安全,就需要进行"加密"
网络传输中不再直接传输明文了,而是加密之后的"密文"
加密的方式有很多,但是整体可以分成两大类:对称加密 和 非对称加密

方案 1-只使用对称加密

如果通信双方都各自持有同一个密钥X,且没有别人知道,这两方的通信安全当然是可以被保证的(除非密钥被破解)
在这里插入图片描述

  1. 假设密钥一开始是服务端设计的,那么他就要发送给客户端,这个首次发送的过程可能被盗取!有人说对密钥加密之后再发送,请问加的这个密是不是也需要先发送----蛋生鸡鸡生蛋
  2. 服务端想改变密钥很困难,客户端数量多,种类多

在这里插入图片描述

方案 2-只使用非对称加密

  1. 浏览器首次请求,服务端返回公钥,假设黑客拿到了公钥,浏览器给服务端发送的信息是公钥加密后的,黑客即使有公钥但是没有私钥,无法解密数据。服务端拿到数据后用私钥解密可以获取数据,即客户端到服务端安全。但是,服务端用私钥加密的数据发送给客户端,黑客有公钥,可以解密数据,服务端到客户端是不安全的!
  2. 鉴于非对称加密的机制,如果服务器先把公钥以明文方式传输给浏览器,之后浏览器向服务器传数据前都先用这个公钥加密好再传,从客户端到服务器信道似乎是安全的(有安全问题),因为只有服务器有相应的私钥能解开公钥加密的数据。
  3. 但是服务器到浏览器的这条路怎么保障安全?如果服务器用它的私钥加密数据传给浏览器,那么浏览器用公钥可以解密它,而这个公钥是一开始通过明文传输给浏览器的,若这个公钥被中间人劫持到了,那他也能用该公钥解密服务器传来的信息。

方案 3-双方都使用非对称加密

  1. 服务端拥有公钥S与对应的私钥S’,客户端拥有公钥C与对应的私钥C
  2. 客户和服务端交换公钥
  3. 客户端给服务端发信息: 先用S对数据加密,再发送,只能由服务器解密,因为只有服务器有私钥S‘
  4. 服务端给客户端发信息:先用C对数据加密,在发送,只能由客户端解密,因为只有客户端有私钥C’

问题

效率太低
依旧有安全问题【下文讲解 】

方案4-非对称加密+对称加密

在这里插入图片描述

  1. 先解决效率问题
    服务端具有非对称公钥S和私钥S’
    客户端发起https请求,获取服务端公钥S
    客户端在本地生成对称密钥C,
    客户端把对称密钥C和公钥S加密,发送给服务器
    由于中间的网络设备没有私钥S’, 即使截获了数据,也无法还原出内部的原文,也就无法获取到对称密钥C(真的吗?)
    服务器通过私钥S"解密,还原出客户端发送的对称密钥C,并且使用这个对称密钥加密给客户端返回的响应数据.
    后续客户端和服务器的通信都只用对称加密即可.由于该密钥只有客户端和服务器两个主机知道,其他主机/设备不知道密钥。即使截获数据也没有意义
    ==》利用非对称加密安全的交换对称加密的密钥

由于对称加密的效率比非对称加密高很多,因此只是在开始阶段协商密钥的时候使用非对称加密,后续的传输仍然使用对称加密.
虽然上面已经比较接近答案了,但是依旧有安全问题

方案 2,方案 3,方案 4都存在一个问题,如果最开始,中间人就已经开始攻击了呢?

Man-in-the-MiddleAttack,简称“MITM攻击
在方案2/3/4中,客户端获取到公钥S之后,把对称秘钥X用S进行加密,中间人即使窃取到了数据,此时中间人无法解出客户端形成的密钥X,因为只有服务器有私钥S”。但是中间人的攻击,如果在最开始握手协商的时候就进行了,那就不一定了,假设hacker已经成功成为中间人

  1. 服务器具有非对称加密算法的公钥S,私钥S’
  2. 中间人具有非对称加密算法的公钥M,私钥M’
  3. 客户端向服务器发起请求,服务器明文传送公钥S给客户端。
  4. 中间人劫持数据报文,提取公钥S并保存好,然后将被劫持报文中的公钥S替换成为自己的公钥M,并将伪造报文发给客户端
  5. 客户端收到报文,提取公钥M(自己当然不知道公钥被更换过了),自己形成对称秘钥X,用公钥M加密X,形成报文发送给服务器
  6. 中间人劫持后,直接用自己的私钥M’进行解密,得到通信秘钥X,再用曾经保存的服务端公钥S加密后,将报文推送给服务器
  7. 服务器拿到报文,用自己的私钥S’解密,得到通信秘钥X
  8. 双方开始采用X进行对称加密,进行通信。但是一切都在中间人的掌握中,劫持数据,进行窃听甚至修改,都是可以的
    上面的攻击方案,同样适用于方案2,方案3

问题本质出在哪里了呢?

客户端无法确定收到的含有公钥的数据报文,就是目标服务器发送过来的!
在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

数据结构与算法之树和二叉树的一些概念和性质

目录 前言 一、树的定义 二、树的若干术语 1.结点的度 2.叶子 3.双亲与孩子 4.兄弟 5.祖先 6.树的度 7.结点的层次 8.树的深度 9.有序树和无序树 10.森林 三、树的逻辑结构 四、树的存储结构 1.顺序存储 2.链式存储 五、二叉树 1.定义 2.二叉树的五种状态 …

美食推荐网站设计

**中文摘要:**在当今信息化、网络化的时代背景下,美食文化正逐渐融入人们的日常生活,而网络平台成为人们获取美食信息、分享美食体验的重要途径。为了满足广大美食爱好者对美食信息的探索和推荐需求,本文提出了一种创新的美食推荐…

OS复习笔记ch5-3

引言 上一节我们学习了关于信号量机制的一些内容,包括信号量的含义,对应的PV操作等。 如图所示,上一节主要是针对信号量的互斥,其实信号量机制还可以做很多事情,比如实现进程同步和前驱关系,这一节我们先复…

Selenium 自动化 —— 常用的定位器(Locator)

什么是定位器 定位器(Locator)是识别DOM中一个或多个特定元素的方法。 也可以叫选择器 Selenium 通过By类,提供了常见的定位器。具体语法如下: By.xxx("");我们选择单个元素时可以使用findByElement: Web…

ICode国际青少年编程竞赛- Python-2级训练场-坐标与列表练习

ICode国际青少年编程竞赛- Python-2级训练场-坐标与列表练习 1、 for i in range(6):Spaceship.step(Item[i].x - Spaceship.x)Dev.step(Item[i].y - Dev.y)Dev.step(Spaceship.y - Dev.y)2、 for i in range(5):Spaceship.step(Item[i].x - Spaceship.x)Flyer[i].step(Item[…

【MySQL数据库开发设计规范】之基础规范

欢迎点开这篇文章,自我介绍一下哈,本人笔名姑苏老陈,是一个JAVA开发老兵。 本文收录于 《MySQL数据库开发设计规范》专栏中,该专栏主要分享一些关于MySQL数据库开发设计相关的技术规范文章,定期更新,欢迎关…

《ESP8266通信指南》11-Lua开发环境配置

往期 《ESP8266通信指南》10-MQTT通信(Arduino开发)-CSDN博客 《ESP8266通信指南》9-TCP通信(Arudino开发)-CSDN博客 《ESP8266通信指南》8-连接WIFI(Arduino开发)(非常简单)-CSD…

机器学习(三) ----------线性回归算法(梯度下降+正则化)

目录 1 定义 2 损失函数(回归) 2.1 最小二乘函数(Least Squares Function) 2.2 均方误差(Mean Squared Error, MSE) 2.3 均方根误差(Root Mean Squared Error, RMSE) 2.4 平均绝…

自动驾驶纵向控制算法

本文来源——b站忠厚老实的老王,链接:忠厚老实的老王投稿视频-忠厚老实的老王视频分享-哔哩哔哩视频 (bilibili.com),侵删。 功率和转速之间的关系就是:功率P等于转矩M乘以转速ω。并不是油门越大加速度就越大。 发动机和电机的转…

GDAL:Warning 1: All options related to creation ignored in update mode

01 警告说明 首先贴出相关代码: out_file_name Rs_{:4.0f}{:02.0f}.tiff.format(year, month) out_path os.path.join(out_dir, out_file_name) mem_driver gdal.GetDriverByName(MEM) mem_ds mem_driver.Create(, len(lon), len(lat), 1, gdal.GDT_Float32) …

掌握用户全生命周期数据,Xinstall让App投放更科学

在数字化时代,App已成为企业与用户互动的重要窗口。然而,想要让App在众多竞争者中脱颖而出,吸引并留住用户,有效的广告投放策略至关重要。这就需要对广告投放效果进行精准分析,以便及时调整策略,实现最大化…

Kubernetes的基本概念

目录 一.基本内容 1.定义 2.作用 二.特性 1.弹性伸缩 2.自我修复 3.服务发现和负载均衡 4.自动发布(默认滚动发布模式)和回滚 5.集中化配置管理和密钥管理 6.存储编排,支持外挂存储并对外挂存储资源进行编排 7.任务批处理运行 三…

clickhouse mergeTree表引擎解析

参照 https://clickhouse.com/docs/zh/engines/table-engines/mergetree-family/mergetree https://clickhouse.com/docs/en/optimize/skipping-indexes Clickhouse中最强大的表引擎当属MergeTree(合并树)引擎及该系列(*MergeTree&#xff…

Springboot项目使用redis实现session共享

1.安装redis,并配置密码 这里就不针对于redis的安装约配置进行说明了,直接在项目中使用。 redis在windows环境下安装:Window下Redis的安装和部署详细图文教程(Redis的安装和可视化工具的使用)_redis安装-CSDN博客 2…

图片公式识别@文档公式识别@表格识别@在线和离线OCR工具

文章目录 abstract普通文字识别本地软件识别公式扩展插件下载小结 在线识别网站/API👺Quicker整合(推荐)可视化编辑和识别公式其他多模态大模型识别图片中的公式排版 开源模型 abstract 本文介绍免费图片文本识别(OCR)工具,包括普通文字识别,公式识别,甚至是手写公…

Linux网络——自定义序列化与反序列化

前言 之前我们学习过socket之tcp通信,知道了使用tcp建立连接的一系列操作,并通过write与read函数能让客户端与服务端进行通信,但是tcp是面向字节流的,有可能我们write时只写入了部分数据,此时另一端就来read了&#x…

ZYNQ MPSoC zcu102 PS端运行helloworld

文章目录 一、参考资料二、需要注意的步骤三、运行结果 一、参考资料 1.zcu102 zynq Mpsoc uart hello world——CSDN博客 2.zcu102自学 —— 第一个实验 (纯PS 串口打印 Hello world)——CSDN博客 3.【02】ALINX Zynq MPSoC XILINX FPGA视频教程 SDK 裸…

Linux:进程信号(一)信号的产生

目录 一、信号是什么? 二、Linux信号 三、信号处理方式 四、信号的产生 1、 通过终端按键产生信号 2、调用系统函数向进程发信号 3、 硬件异常产生信号 一、信号是什么? 在生活中,有许多信号,比如红绿灯,下课铃声…

如何使用Transformer-TTS语音合成模型

1、技术原理及架构图 ​ Transformer-TTS主要通过将Transformer模型与Tacotron2系统结合来实现文本到语音的转换。在这种结构中,原始的Transformer模型在输入阶段和输出阶段进行了适当的修改,以更好地处理语音数据。具体来说,Transformer-TT…

【Docker】新手教程的第一个demo:Wordpress

1 任务简单介绍 WordPress是什么: 是一个常用博客软件简单易部署,只需要两个容器(业务容器 数据库容器) 本文借鉴博客,使用自建 WordPress 容器方法在Docker上部署Wordpress,本地环境为Mac时使用该博客…
最新文章