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

news2024/12/26 11:28:04

文章目录

  • 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.coloradmin.cn/o/1657367.html

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

相关文章

微型显示器可以实时监测大脑活动

美国团队开发基于LED的设备,以可视化大脑活动,在脑外科手术中指导神经外科医生 来自加州大学圣地亚哥分校和马萨诸塞州总医院的工程师和医生开发了一种薄膜显示设备,该设备结合了电极网格和特殊的GaN LED,可以在手术过程中实时跟…

vivado 低级别 SVF JTAG 命令、多链 SVF 操作

多链 SVF 操作 以下示例显示了如何在 SVF 链上处理操作。 每个链中连接有 2 个器件 : xcku11 和 xcku9 。配置存储器连接到链中的第 2 个器件 (xcku9) 。为访问此配置存储器 , SVF 会使用 HIR 、 HDR 、 TIR 和 TDR 命令来生成命令。为刷写此…

[MQTT]Mosquitto的內網連接(intranet)和使用者/密碼權限設置

[MQTT | Raspberry Pi]Publish and Subscribe with RSSI Data of Esp32 on Intranet 延續[MQTT]Mosquitto的簡介、安裝與連接測試文章,接著將繼續測試在內網的兩台機器是否也可以完成發佈和訂閱作業。 同一網段的兩台電腦測試: 假設兩台電腦的配置如下: A電腦為發…

阿里面试:写一个倒计时功能刷掉了80% 的人

>>>>OD部门捞人,前后端均可 纯标题党!!!,但确实是阿里的大佬自己群里说的在面试时候必问的一个题目,其实这个问题不仅是在面试中,也在我们的业务里也会经常用到,所以才会…

Android 的 Timer 和 TimerTask

Timer 简介(来自Gemini) Timer 是 Java 中用于创建定时任务的类。它位于 java.util 包中。可以使用 Timer 来安排一次性或定期执行的任务。 每个 Timer 对象都对应一个后台线程。此线程负责从任务队列中检索任务并按计划执行它们。 使用 Timer 要使用 Timer,首先…

“找不到mfcm80u.dll”错误怎么办?一文了解原因和解决办法!

在使用Windows操作系统时,许多用户可能会遇到各种DLL文件缺失或损坏的问题。其中,“找不到mfc80u.dll”错误就是比较常见的一种。 下面小编就给大家分享出现“找不到mfc80u.dll”错误的原因和解决办法,帮助您快速解决此问题。 一、mfc80u.dl…

分布式与一致性协议之Gossip协议

Gossip协议 概述 有些人的业务需求具有一定的敏感性,比如监控主机和业务运行的告警系统,大家都希望自己的系统在极端情况下(比如集群中只有一个节点在运行)也能运行。在会以了二阶段提交协议和Raft算法之后,你会发现它们都需要全部节点或者…

如何开启深色模式【攻略】

如何开启深色模式【攻略】 前言版权推荐如何开启深色模式介绍手机系统手机微信手机QQ手机快手手机抖音 电脑系统电脑微信电脑QQ电脑WPS电脑浏览器 最后 前言 2024-5-9 20:48:21 深色模式给人以一种高级感。 本文介绍一些常用软件深色模式的开启 以下内容源自《【攻略】》 仅…

7-37 整数分解为若干项之和

题目链接&#xff1a;7-37 整数分解为若干项之和 一. 题目 1. 题目 2. 输入输出格式 3. 输入输出样例 4. 限制 二、代码 1. 代码实现 #include <iostream> #include <vector> using namespace std;// 打印整数分解序列式子的右边内容 void print_combinations(…

JavaScript初了解

JS的三种书写位置&#xff1a;行内&#xff0c;内嵌&#xff0c;外部 JS的注释的书写&#xff1a;单行注释&#xff1a;// ctrl/ 多行注释&#xff1a;/**/ ShiftAltA JavaScript输入输出语句

分布式事务Seata使用

我们要学习seata&#xff0c;首先需要具备如下技术储备&#xff1a; 数据库事务的基本知识&#xff1b;maven工具的使用&#xff1b;熟悉SpringCloudAlibaba技术栈&#xff1b;掌握SpringDataJPA简单使用&#xff1b; 一. Seata基本概念 1.seata是什么 Seata是阿里巴巴中间…

路由模块封装

目录 一、问题引入 二、步骤 一、问题引入 随着项目内容的不断扩大&#xff0c;路由也会越来越多&#xff0c;把所有的路由配置都堆在main.js中就不太合适了&#xff0c;所以需要将路由模块抽离出来。其好处是&#xff1a;拆分模块&#xff0c;利于维护。 二、步骤 将路由相…

【java.io.IOException: java.lang.IllegalArgumentException: db.num is null】

默认用户名&#xff1a;nacos 密码&#xff1a;nacos解决方法&#xff1a; a)在conf目录下将nacos-mysql.sql脚本创建完成&#xff1b; b)修改application.properties&#xff0c;在内容里添加如下内容 spring.datasource.platformmysql db.num1 db.url.0jdbc:mysql://localho…

videosapi开发微信管理系统

获取登录二维码&#xff1a; export interface Request {/*** 设备ID&#xff0c;首次登录传空&#xff0c;之后传接口返回的appId*/appId?: string;/*** 代理IP 格式&#xff1a;socks5://username:password123.2.2.2*/proxyIp?: string;/*** 地区*/regionId: string;[prop…

加速科技突破2.7G高速数据接口测试技术

随着显示面板分辨率的不断提升&#xff0c;显示驱动芯片&#xff08;DDIC&#xff09;的数据接口传输速率越来越高&#xff0c;MIPI、LVDS/mLVDS、HDMI等高速数据接口在DDIC上广泛应用。为满足高速数据接口的ATE测试需求&#xff0c;作为国内少数拥有完全自研的LCD Driver测试解…

Android GPU渲染屏幕绘制显示基础概念(1)

Android GPU渲染屏幕绘制显示基础概念&#xff08;1&#xff09; Android中的图像生产者OpenGL&#xff0c;Skia&#xff0c;Vulkan将绘制的数据存放在图像缓冲区中&#xff0c;Android中的图像消费SurfaceFlinger从图像缓冲区将数据取出&#xff0c;进行加工及合成。 Surface…

Tensorflow2.0笔记 - 循环神经网络RNN做IMDB评价分析

本笔记记录使用SimpleRNNCell做一个IMDB评价系统情感二分类问题的例子。 import os import time import numpy as np import tensorflow as tf from tensorflow import keras from tensorflow.keras import datasets, layers, optimizers, Sequential, metrics, Inputos.envir…

模拟实现链表的功能

1.什么是链表&#xff1f; 链表是一种物理存储结构上非连续存储结构&#xff0c;数据元素的逻辑顺序是通过链表中的引用链接次序实现的 。 实际中链表的结构非常多样&#xff0c;以下情况组合起来就有8种链表结构&#xff1a; 单向或者双向 带头或者不带头 …

机器学习:基于线性回归、岭回归、xgboost回归、Lasso回归、随机森林回归预测卡路里消耗

前言 系列专栏&#xff1a;机器学习&#xff1a;高级应用与实践【项目实战100】【2024】✨︎ 在本专栏中不仅包含一些适合初学者的最新机器学习项目&#xff0c;每个项目都处理一组不同的问题&#xff0c;包括监督和无监督学习、分类、回归和聚类&#xff0c;而且涉及创建深度学…

小丑的身份证和复印件 (BFS + Floyd)

本题链接&#xff1a;登录—专业IT笔试面试备考平台_牛客网 题目&#xff1a; 样例&#xff1a; 输入 2 10 (JOKERjoke #####asdr) 输出 12 思路&#xff1a; 根据题意&#xff0c;要求最短时间&#xff0c;实际上也可以理解为最短距离。 所以应该联想到有关最短距离的算法&…