【Linux】HTTPS协议是如何保证数据安全的

news2024/11/17 3:55:16

​🌠 作者:@阿亮joy.
🎆专栏:《学会Linux》
🎇 座右铭:每个优秀的人都有一段沉默的时光,那段时光是付出了很多努力却得不到结果的日子,我们把它叫做扎根
在这里插入图片描述

目录

    • 👉基础概念👈
      • 什么是HTTPS协议
      • 什么是加密
      • 为什么要加密
      • 常见的加密方式
      • 数据摘要和数据指纹
      • 数字签名
    • 👉HTTPS的工作过程探究👈
      • 方案1:只使用对称加密
      • 方案2:只使用非对称加密
      • 方案3:双方都使用非对称加密
      • 方案4:非对称加密+对称加密
      • 中间人攻击
      • 引入证书
      • 非对称加密+对称加密+证书认证
      • 如何成为中间人
      • 完整流程
    • 👉总结👈

👉基础概念👈

什么是HTTPS协议

HTTP 协议内容都是按照文本的方式明文传输的,这就导致在传输过程中出现⼀些被篡改的情况。很明显,这是不安全的,所以引入了 HTTPS 协议来解决这个问题。

HTTPS(Hyper Text Transfer Protocol Secure)是 HTTP 协议的一种安全版本,通过使用 SSL 或 TLS 协议对 HTTP 协议的通信进行加密,从而保证通信的安全性。

注:什么是安全呢?安全就是破解的成本远远大于破解的收益。

在这里插入图片描述

什么是加密

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

加密解密到如今已经发展成⼀个独立的学科:密码学。而密码学的奠基人,也正是计算机科学的祖师爷之一,艾伦·麦席森·图灵。

在这里插入图片描述
关于图灵大佬的简介:

在这里插入图片描述

为什么要加密

运营商劫持是指网络运营商(例如电信、联通、移动等)通过技术手段修改用户的网络流量,从而使用户的访问请求被重定向到其他网站或者被修改。这种行为通常是为了广告投放、监控用户行为或者政治审查等目的。

运营商劫持的方式有很多种,最常见的是 DNS 劫持和 HTTP 劫持。DNS 劫持指的是运营商篡改 DNS 服务器的解析结果,将用户请求的域名解析到错误的 IP 地址,从而达到劫持的效果。HTTP 劫持则是通过拦截用户的 HTTP 请求包,修改其中的内容或者插入广告等信息,再将请求转发到服务器上。

现在我们来讨论一下 HTTP 劫持,假设我想要下载一个天天动听,未被劫持的效果,点击下载,就会弹出天天动听的下载链接。如下图所示:

在这里插入图片描述
已被劫持的效果,点击下载按钮,就会弹出QQ浏览器的下载链接。

在这里插入图片描述
由于我们通过网络传输的任何的数据包都会经过运营商的网络设备(路由器、交换机等),那么运营商的网络设备就可以解析出你传输的数据内容,并进行篡改。

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

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

不止运营商可以劫持,其他的黑客也可以用类似的手段进行劫持,来窃取用户的隐私信息或者篡改内容。所以在互联网上,采用明文传输是很危险的事情!!!HTTPS 就是在 HTTP 的基础上进行了加密,进⼀步的来保证用户的信息安全。

常见的加密方式

对称加密

  • 采⽤单钥密码系统的加密方法,同⼀个密钥可以同时用作信息的加密和解密,这种加密方法称为对称加密,也称为单密钥加密,特征:加密和解密所用的密钥是相同的。
  • 常见对称加密算法(了解):DES、3DES、AES、TDEA、Blowfish、RC2等。
  • 特点:算法公开、计算量小、加密速度快、加密效率高。

对称加密其实就是通过同⼀个密钥,由发送方和接收方共享的。用这个秘钥就可以把明文加密成密文,并且也能把密文解密成明文。因此只要知道了对称密钥,就可以轻松地解密加密的数据。缺点是密钥的分发比较困难,容易被攻击者获取密钥从而破解数据。

⼀个简单的对称加密:按位异或

在这里插入图片描述
非对称加密

  • 需要两个密钥来进行加密和解密,这两个密钥是公开密钥(public key,简称公钥)和私有密钥(private key,简称私钥)。
  • 常见非对称加密算法(了解):RSA,DSA,ECDSA
  • 特点:算法强度复杂、安全性依赖于算法与密钥。但是由于其算法复杂,而使得加密解密速度没有对称加密解密的速度快;而其优点是密钥的分发和管理比较容易。

非对称加密使用一对密钥来加密和解密数据,公钥是公开的,任何人都可以获取,用来加密数据;私钥只有接收方才有,用来解密数据。

公钥和私钥是配对的,最大的缺点就是运算速度非常慢,比对称加密要慢很多。

  • 通过公钥对明文加密,变成密文
  • 通过私钥对密文解密,变成明文

也可以反着用

  • 通过私钥对明文加密,变成密文
  • 通过公钥对密文解密,变成明文

数据摘要和数据指纹

数据摘要和数据指纹都是用于数据完整性验证的技术,通常应用于数据传输和存储等场景。

数据摘要(Message Digest)是将任意长度的消息(message)通过一个单向的、不可逆的函数,变换成固定长度的摘要(digest)的过程。常见的数据摘要算法有 MD5、SHA-1、SHA-256 等,这些算法在输入数据不同的情况下会生成不同的固定长度的输出值,输出值也称为摘要值。因为数据摘要算法是单向的,所以无法从摘要值反推出原始数据,因此数据摘要算法可以用于数据的完整性验证。

数据指纹(Digital Fingerprint)也是一种数据完整性验证技术,常用于文件的完整性验证。数据指纹的生成过程是将文件的内容按照一定的算法生成一个唯一的、不可篡改的指纹值,也称为哈希值(hash value)。与数据摘要不同的是,数据指纹是对文件整体进行哈希运算,生成的指纹值可以用于验证文件的完整性。

数据摘要、数据指纹和加密算法的区别是,摘要和指纹严格意义不是加密,因为没有解密。只不过从摘要和指纹很难反推原始信息,通常用来进行数据对比,判断数据有没有被篡改。

注:两个不同的信息算出的摘要值可能相同,但是概率非常低。数据摘要和数据指纹都是用于验证数据完整性的技术,但数据指纹更多用于文件完整性验证,而数据摘要可以应用于更广泛的场景中,例如密码存储、数字签名等。

数据摘要和数据指纹的应用场景

在这里插入图片描述

数字签名

数字签名是一种加密技术,用于验证数据的完整性和身份认证。数字签名可以用来验证文件、文本、电子邮件和其他数据的来源和完整性,以确定它是否已被篡改或损坏。

数字签名基于公钥加密技术和哈希函数。发送方使用哈希函数对数据进行处理,生成摘要,并使用自己的私钥对摘要进行加密,这就形成了数字签名。接收方收到数据和数字签名后,使用发送方的公钥对数字签名进行解密,并使用同样的哈希函数处理数据,生成一个新的摘要。然后将这个新的摘要与数字签名中的摘要进行比较,如果两个摘要匹配,则可以确定数据的完整性和身份认证。

数字签名的应用非常广泛,例如在网上银行、电子邮件和电子商务中,数字签名可以用来保护敏感信息和交易的安全性。

👉HTTPS的工作过程探究👈

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

方案1:只使用对称加密

如果通信双方都各自持有同⼀个密钥 X,且没有别人知道,这两方的通信安全当然是可以被保证的(除非密钥被破解)。

在这里插入图片描述
引入对称加密之后,即使数据被截获也没有任何影响。由于黑客不知道密钥是啥,因此就无法对密文进行解密,也就无法知道请求的真实内容是啥了。

但事情并没有这么简单,服务器同⼀时刻其实是给很多客户端提供服务的。这么多客户端,每个客户端的秘钥都必须是不同的(如果是相同的密钥就太容易扩散了,黑客就也能拿到了)。因此服务器就需要维护每个客户端和每个密钥之间的关联关系,这也是一件比较麻烦的事。

在这里插入图片描述

比较理想的做法就是能在客户端和服务器建立连接的时候,双放协商确定这次通信的密钥是啥。

在这里插入图片描述
但是如果直接把密钥明文传输,那么黑客也就能获得密钥了,此时后续的加密操作就形同虚设了。因此密钥的传输也必须加密传输!!!

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

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

鉴于非对称加密的机制,如果服务器先把公钥以明文方式传输给浏览器,之后浏览器向服务器传数据前都先用这个公钥加密好再传,从客户端到服务器信道似乎是安全的,因为只有服务器有相应的私钥能解开公钥加密的数据。

但是服务器到浏览器的这条路怎么保障安全?如果服务器用它的私钥加密数据传给浏览器,那么浏览器用公钥可以解密它。而这个公钥是⼀开始通过明文传输给浏览器的,若这个公钥被中间⼈劫持到了,那他也能用该公钥解密服务器传来的信息了。

只使用非对称加密的方式只能保证数据从客户端到服务端的安全,无法保证数据从服务端到客户端的安全。

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

在这里插入图片描述

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

以上的加密方式似乎可以,但存在效率太低和安全的问题。

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

采用非对称加密 + 对称加密的方式可以解决双方都采用采用非对称加密的效率低问题。

在这里插入图片描述

  • 服务端具有公钥 S 和私钥 S’
  • 客户端发起请求,获取服务端公钥S
  • 客户端在本地生成对称密钥 C,通过公钥 S 加密后发送给服务器
  • 由于中间的网络设备没有私钥,即使截获了数据,也无法还原出内部的原文,也就无法获取到对称密钥
  • 服务器通过私钥 S’ 解密,还原出客户端发送的对称密钥 C,并且使用这个对称密钥加密给客户端返回的响应数据
  • 后续客户端和服务器的通信都只用对称加密即可,由于该密钥只有客户端和服务器两个主机知道,其他主机或设备不知道密钥即使截获数据也没有意义

由于对称加密的效率比非对称加密高很多,因此只是在开始阶段协商密钥的时候使用非对称加密,后续的传输仍然使用对称加密。

虽然非对称加密 + 对称加密的方式已经比较接近答案了,但是依旧有安全问题。方案 2,方案 3,方案 4都存在⼀个问题:如果最开始,中间人就已经开始攻击了呢?

中间人攻击

中间人攻击是一种常见的网络安全攻击,也称为 MITM 攻击(Man-In-The-Middle Attack)。该攻击利用了网络通信中的弱点,将通信的两端之间的数据流量在中途拦截,以获取敏感信息或篡改通信内容。

具体来说,中间人攻击的过程通常包括以下几个步骤:

  • 欺骗双方:攻击者伪装成客户端或服务端,向另一方发送假数据或假身份信息,使对方误以为自己正在与合法的通信对象通信。

  • 拦截通信:攻击者在客户端和服务端之间插入自己的设备或程序,拦截双方之间的通信,获取数据流量。

  • 篡改内容:攻击者可以修改拦截到的数据流量,篡改通信内容或植入恶意软件,以达到控制双方通信的目的。

中间人攻击可以通过多种方式实施,如 ARP 欺骗、DNS 欺骗、Wi-Fi 劫持等。为了避免中间人攻击,通常需要采取一些安全措施,如使用加密通信协议、验证数字证书、使用安全的 Wi-Fi 网络等。


在方案 2 / 3 / 4 中,客户端获取到公钥 S 之后,对客户端形成的对称秘钥 X 用服务端给客户端的公钥 S 进行加密,中间人即使窃取到了数据,此时中间人确实无法解出客户端形成的密钥 X,因为只有服务器有私钥 S。

但是中间人的攻击,如果在最开始握手协商的时候就进行了,那就不一定了。

在这里插入图片描述

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

上面的攻击放案,同样适用于方案 2 和方案 3。问题本质出在哪里了呢?中间人能够对数据进行篡改以及客户端无法确定收到的公钥就是目标服务器的公钥。

引入证书

CA 认证

CA(Certificate Authority)认证是指使用数字证书来证明身份的一种方式,由权威机构(CA 机构)颁发,主要用于保障通信的安全性和可靠性。

CA 机构会通过严格的身份验证流程来确定证书申请者的身份和资质,然后颁发数字证书给申请者。数字证书包含了证书申请者信息、申请者的公钥、数字签名、有效期等信息,CA 机构的数字签名保证了证书的真实性和完整性。在通信过程中,如果接收方需要验证对方的身份,可以通过使用对方的数字证书来验证其真实性,从而确保通信安全和可靠性。

CA 认证的优点是可以避免中间人攻击和假冒身份等问题,同时提高了通信的保密性和完整性。在互联网应用中,HTTPS 协议的通信安全机制就是基于 CA 认证实现的。

服务端在使用 HTTPS 前,需要向 CA 机构申请一份数字证书。申请成功后,服务器把证书传输给浏览器,浏览器从证书里获取公钥就行了。证书就如身份证,证明服务端公钥的权威性。

在这里插入图片描述

这个证书可以理解成是⼀个结构化的字符串,里面包含了这些信息:证书发布机构、证书有效期、公钥、证书所有者、签名等。

需要注意的是:申请证书的时候,需要在特定平台生成一对密钥,即公钥和私钥。这对密钥就是用来在网络通信中进行明文加密以及数字签名的。

其中公钥会随着 CSR 文件,⼀起发给 CA 机构进行权威认证,私钥服务端自己保留,用来后续进行通信(其实主要就是用来交换对称秘钥)。

在这里插入图片描述
在这里插入图片描述
CSR 在线生成工具

形成 CSR 之后,后续就是向 CA 机构进行申请认证。不过认证过程一般很繁琐,如果真的需要可以找证书申请服务商解决就行。

理解数据签名

数据摘要经过加密就能够得到数据签名,数据签名的形成是基于非对称加密算法的!

在这里插入图片描述
当服务端申请 CA 证书的时候,CA 机构会对该服务端进行审核,并专门为该网站形成数字签名,过程如下:

  • CA 机构拥有非对称加密的私钥 A 和公钥 A’
  • CA 机构对服务端申请的证书明文数据进行 hash,形成数据摘要
  • 然后对数据摘要用 CA 私钥 A’ 加密,得到数字签名 S

在这里插入图片描述

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

非对称加密+对称加密+证书认证

在客户端和服务器刚一建立连接的时候,服务器给客户端返回⼀个证书,证书包含了之前服务端的公钥,也包含了网站的身份信息。

客户端进行认证

  • 当客户端获取到这个证书之后,会对证书进行校验(防止证书是伪造的)
  • 判定证书的发布机构是否受信任(操作系统中已内置的受信任的证书发布机构)
  • 验证证书是否被篡改:从系统中拿到该证书发布机构的公钥(公钥是内置的),对数字签名解密,得到⼀个哈希值(称为数据摘要),设为 hash1。然后计算整个证书的哈希值,设为 hash2。对比 hash1 和 hash2 是否相等,如果相等,则说明证书是没有被篡改过的。

中间人有没有可能篡改该证书?

  • 中间人篡改了证书的明文
  • 由于中间没有 CA 机构的私钥,所以无法 hash 之后用私钥加密形成签名,那么也就没法办法对篡改后的证书形成匹配的签名
  • 如果强行篡改证书,客户端收到该证书后会发现明文和签名解密后的值不一致,则说明证书已被篡改。证书不可信,客户端从而终止向服务器传输信息,防止信息泄露给中间人

查看浏览器的受信任证书发布机构

Chrome 浏览器,点击右上角的三个点。选择 “设置”,搜索 “证书管理”,即可看到以下界面。(如果没有,在隐私设置和安全性->安全里面找找)

在这里插入图片描述

在这里插入图片描述

中间人整个掉包证书?

  • 因为中间人没有 CA 私钥,所以无法制作假的证书
  • 所以中间人只能向 CA 申请真证书,然后用自己申请的证书进行掉包
  • 这个确实能做到证书的整体掉包,但是别忘记证书明文中包含了域名等服务端认证信息。如果整体掉包,客户端依旧能够识别出来
  • 永远记住,中间人没有 CA 私钥,所以对任何证书都无法进行合法修改,包括自己的

为什么摘要内容在网络传输的时候一定要加密形成签名?

在这里插入图片描述
假设我们的证书只是一个简单的字符串 hello,对这个字符串计算 hash 值(比如md5),结果为 BC4B2A76B9719D91。

如果 hello 中有任意的字符被篡改了,比如变成了 hella,那么计算的 md5 值就会变化很大,为 BDBD6F9CF51F2FD8。

然后我们可以把这个字符串 hello 和 哈希值BC4B2A76B9719D91 从服务器返回给客户端,此时客户端如何验证 hello 是否是被篡改过?那么就只要计算字符串的哈希值,看看是不是 BC4B2A76B9719D91 即可。

在这里插入图片描述
但是还有个问题,如果黑客把 hello 篡改了,同时也把哈希值重新计算下,客户端就分辨不出来了。

在这里插入图片描述
所以被传输的哈希值不能传输明文,需要传输密文。

所以,对证书明文(这里就是字符串 hello) hash 形成散列摘要,然后 CA 机构使用自己的私钥加密形成签名,将
hello 和加密的签名合起来形成 CA 证书颁发给服务端。当客户端请求的时候,就发送给客户端,中间人截获了,因为没有 CA 私钥,就无法更改或者整体掉包,就能够证明证书的合法性。最后客户端通过操作系统里内置的证书发布机构的公钥进行解密,还原出原始的哈希值,再进行校验。

为什么签名不直接加密,而是要先 hash 形成摘要?

缩小签名明文的长度,加快数字签名的验证签名的运算速度。

如何成为中间人

  • ARP欺骗:通过伪造 ARP 协议的响应来欺骗网络上的其他设备,使得攻击者可以拦截、篡改、丢弃网络通信数据包,实现中间人攻击等行为。在局域网中,黑客经过收 ARP Request 广播包,能够偷听到其它节点的地址(IP、MAC)。黑客收到两个主机 A、B 的地址,告诉 B(受害者),自己是 A,使得 B 在发送给 A 的数据包都被黑客截取。

  • ICMP 攻击:由于 ICM P协议中有重定向的报文类型,那么我们就可以伪造一个 ICMP 信息然后发送给局域网中的客户端,并伪装自己是一个更好的路由通路,从而导致目标所有的上网流量都会发送到我们指定的接口上,达到和 ARP 欺骗同样的效果。

  • 假 WIFI 攻击是指攻击者伪造一个 WIFI 热点,使得用户连接到该热点后,攻击者可以窃取用户的敏感信息,如账号密码等。

  • 假网站攻击是指攻击者伪造一个与正规网站类似的网站,诱导用户在该网站上输入敏感信息,从而窃取用户的账号密码等敏感信息。

完整流程

左侧都是客户端做的事情,右侧都是服务器做的事情。

在这里插入图片描述
总结

HTTPS 工作过程中涉及到的密钥有三组

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

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

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

其实一切的关键都是围绕这个对称加密的密钥,其他的机制都是辅助这个密钥工作的。

  • 第一组非对称加密的密钥是为了让客户端拿到第二组非对称加密的公钥。
  • 第二组非对称加密的密钥是为了让客户端把这个对称密钥传给服务器。

👉总结👈

本篇博客主要讲解了什么是HTTPS协议、什么是加密、为什么要加密、常见的加密方法、数据摘要、数据指纹、数字签名以及探讨了 HTTPS 的工作过程等等。以上就是本篇博客的全部内容了,如果大家觉得有收获的话,可以点个三连支持一下!谢谢大家啦!💖💝❣️

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

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

相关文章

【Linux】进程篇Ⅰ:进程信息、进程状态、环境变量、进程地址空间

文章目录 一、概述二、查看进程信息1. 系统文件夹 /proc2. 用户级工具 ps3. getpid() 函数:查看进程 PID4. 用 kill 杀进程5. 进程优先级 二、进程状态分析0. 1. R (running) 运行状态2. S (sleeping) 休眠状态3. D (disk sleep) 不可中断的休眠状态4. T (stopped) …

【数据结构】顺序表(SeqList)(增、删、查、改)详解

一、顺序表的概念和结构 1、顺序表的概念: 顺序表是用一段物理地址连续的存储单元依次存储数据元素的线性结构,一般情况下采用数组存储。在数组上完成数据的增删查改。 2、顺序表的结构: (1)静态顺序表:使…

Redis Cluster 在Spring中遇到的问题

Redis集群配置可能会在运行时更改。可以添加新节点,可以更改特定插槽的主节点。还有可能因为master宕机或网络抖动等原因,引起了主从切换。 无法感知集群槽位变化 SpringBoot2.x 开始默认使用的 Redis 客户端由 Jedis 变成了 Lettuce,但是当…

忽略nan值,沿指定轴计算标准(偏)差numpy.nanstd()

【小白从小学Python、C、Java】 【计算机等考500强证书考研】 【Python-数据分析】 沿指定轴方向 计算标准(偏)差 numpy.nanstd() [太阳]选择题 import numpy as np a np.array([[1,2],[np.nan,3]]) print("【显示】a ") print(a) print("【执行】np.std(a)&qu…

QT项目代码去UI界面常用开发步骤

QT项目代码去UI界面常用开发步骤 因项目开发需求,领导要求整个QT项目中不要用UI方式来实现界面,这样能保障程序运行稳定性以及代码的逻辑和可读性,先记录具体操作步骤如下: 1、首先我们通过拖控件的方式来实现界面的设计效果&#xff0c…

ARM汇编基本变量的定义和使用

一、ARM汇编中基本变量是什么? 数字变量: GBLA LCLA SETA 逻辑变量:GBLL LCLL SETL 字符串:GBLS LCLS SETLS 注意需要TAB键定义变量和行首改变值 二、使用步骤 1.引入库 代码如下(示例): GBLA led_num Reset_Handler PROCEXPORT Reset_Handler [WEA…

HCIP BGP综合实验

题目 1、AS1存在两个环回,一个地址为192.168.1.0/24该地址不能在任何协议中宣告; 2、AS3中存在两个环回,一个地址为192.168.2.0/24该地址不能在任何协议中宣告,最终要求这两个环回可以互相通讯; 3、AS间的骨干链路I…

Vue3搭建启动

Vue3搭建&启动 一、创建项目二、启动项目三、配置项目1、添加编辑器配置文件2、配置别名3、处理sass/scss4、处理tsx 四、添加Eslint 一、创建项目 npm create vite 1.project-name 输入项目名vue3-vite 2.select a framework 选择框架 3.select a variant 选择语言 二、启…

idea 安装 插件jrebel 报错LS client not configured.

这个报错找了好久,有博主说版本不对,我脑子没反应过来以为是随便换一个低版本的就行,没想到只能是2022.4.1 这个版本才行 一定要用jrebel 2022.4.1的插件版本!!!!! 插件下载地址&…

网络面试合集

传输层的数据结构是什么? 就是在问他的协议格式:UDP&TCP 2.1.1三次握手 通信前,要先建立连接,确保双方都是在线,具有数据收发的能力。 2.1.2四次挥手 通信结束后,会有一个断开连接的过程&#xff0…

❤️创意网页:绚丽粒子雨动画

✨博主:命运之光 🌸专栏:Python星辰秘典 🐳专栏:web开发(简单好用又好看) ❤️专栏:Java经典程序设计 ☀️博主的其他文章:点击进入博主的主页 前言:欢迎踏入…

Codeforces Round 889 (Div. 2) 题解

晚上睡不着就来总结一下叭~(OoO) 赛后榜(希望不要被Hack...Orz) 终榜!!! 瞬间的辉煌(呜呜呜~) 先不放图了。。怕被dalaoHack...呜呜呜~ 总结 7.29半夜比赛,本来是不想打的,感觉最近做的题太多…

Manjaro KDE 22.1.3vmware无法复制文件

Wayland 是 X11 的现代替代品,几十年来 X11 一直是 Linux 上的默认窗口系统。 Wayland 是一种通信协议,定义 X Window 显示服务器和客户端应用程序之间的消息传递。 软件还不兼容 使用X11即可

JavaScript中的switch语句

switch语句和if语句一样,同样是运用于条件循环中; 下面例子我们用switch实现 例如如果今天是周一就学习HTML,周二学习CSS和JavaScript,周三学习vue,周四,周五学习node.js,周六周日快乐玩耍&…

微服务项目,maven无法加载其他服务依赖

微服务项目,导入了工具类工程,但是一直报错,没有该类, 检查maven 这里的Maven的版本与idea版本不匹配可能是导致依赖加载失败的最重要原因 检查maven配置,我这是原来的maven,home 修改之后,就不报错了

39.密码长度改变图片模糊

密码长度改变图片模糊 html部分 <div class"bg"></div> <div class"container"><h1>Image Password Strength</h1><h3>Change the password to see the effect</h3><div class"email" style&quo…

Mybatis-Flex 比 MyBatis-Plus更轻量,高性能

一、Mybatis-Flex是什么&#xff1f; Mybatis-Flex 是一个优雅的 Mybatis 增强框架&#xff0c;它非常轻量、同时拥有极高的性能与灵活性。我们可以轻松的使用 Mybaits-Flex 链接任何数据库&#xff0c;其内置的 QueryWrapper^亮点 帮助我们极大的减少了 SQL 编写的工作的同时…

MQTT服务器详细介绍:连接物联网的通信枢纽

随着物联网技术的不断发展&#xff0c;MQTT&#xff08;Message Queuing Telemetry Transport&#xff09;协议作为一种轻量级、可靠、灵活的通信协议&#xff0c;被广泛应用于物联网领域。在MQTT系统中&#xff0c;MQTT服务器扮演着重要的角色&#xff0c;作为连接物联网设备和…

MDK5__配色方案的修改

一、必要的知识 与MDK主题相关的文件有两个&#xff0c;在X:\Keil_v5\UV4路径下&#xff1a; global.propglobal.prop.def其中global.prop.def是系统默认的主题配置 如果修改过字体等&#xff0c;系统会生成一个global.prop。 二、修改的步骤 1、打开工程 菜单 Edit 下 Con…

AXI协议之AXILite开发设计(四)—Block Design使用

微信公众号上线&#xff0c;搜索公众号小灰灰的FPGA,关注可获取相关源码&#xff0c;定期更新有关FPGA的项目以及开源项目源码&#xff0c;包括但不限于各类检测芯片驱动、低速接口驱动、高速接口驱动、数据信号处理、图像处理以及AXI总线等 2、AXI interconnect互联组件的使用…