【Linux网络编程】HTTPS协议原理
目录
一,HTTPS是什么?
1,什么是加密?
2,为什么需要加密?
3,常见的加密方式
对称加密
非对称加密
4,数据摘要&&数据指纹
二,HTTPS协议加密方案
方案一:只使用对称加密
方案二:只使用非对称加密
方案三:双方都使用非对称加密
方案四:非对称加密+对称加密
上述四种方案存在安全问题的原因——中间人攻击
理解数据签名
理解证书以及CA机构
方案五:非对称加密+对称加密+证书认证
总结
一,HTTPS是什么?
概念:HTTPS(HyperText Transfer Protocol Sercure)是HTTP的安全版本,通俗地讲,HTTPS就是在HTTP的基础上做了加密,保证用户数据的安全。它通过SSL/TLS协议对数据进行加密,确保数据 在传输过程中的安全性。
HTTPS也是一个应用层协议,是在HTTP协议的基础之上引入了一个加密层。
HTTP协议的内容都是按照明文传输的,这就导致在传输过程中可能会存在数据被篡改的情况。
所以,HTTPS广泛应用于需要保护用户隐私和数据安全的场景,如在线支付,登录认证等,都需要对用户的数据进行加密保护处理。
1,什么是加密?
加密就是把明文(要传输的信息)进行一系列变换,生成密文。
解密就是把密文,经过一系列的变换,还原成明文。
在这个加密和解密的过程中,往往需要一个或者多个中间数据,来辅助这一过程的完成,这样的数据称作密钥。
2,为什么需要加密?
如果使用HTTP协议,不对传输的数据进行加密,由于我们通过网络传输的数据都会经过运营商的网络设备(如路由器,交换机等等),那么运营商的网络设备就可以解析出你传输的数据内容,并进行篡改了。举个栗子:
因为HTTP的内容都是明文传输的,明文数据会经过路由器,wifi热点,通信服务运营商,代理服务器等多个网络节点,如果信息在传输过程中被劫持,传输的信息就全都暴露了。劫持者还可以 篡改传输的信息,并且服务器和客户端都不知情 。中间部分的运营商叫做中间人!!
所以,在互联网 中,明文传输是比较危险的事情!!!
HTTPS就是HTTP的基础之上进行了加密,进一步的来保证用户的信息安全。
3,常见的加密方式
对称加密
概念:采用单钥密码系统的加密方法,一个密钥可以同时用作信息的加密和和解密。这种加密方法称为对称加密。
常见算法:DES,3DES,AES,TDEA等等。
特点:算法公开,计算量小,加密速度快,加密效率高。
对称加密,其实就是 通过一个密钥,可以讲明文转换成 密文,也可以讲密文转换成明文。
举个栗子:
一个简单的对称密钥:按位异或
假设明文a=1234,密钥key=1111。
则加密a后得到的密文b为:a^key=133。
然后针对密文b,进行解密,转换成明文b^key,得到的就是原来的明文1234。
key就是一把密钥。
当然HTTPS使用的不是异或运算。
非对称加密
需要有两个密钥来进行加密和解密。这两个密钥分别是公开密钥(public key,简称公钥)和私有密钥(private key,简称私钥)。
公钥,顾名思义,是所有人可以获取到的;而私钥,就只有一个人持有。
常见非对称加密算法:RSA,DSA,ECDSA等。
特点:算法强度复杂,安全性依赖于算法与密钥。但是由于其算法的复杂,使得加密解密速度没有对称加密的速度快。
非对称加密要用到两个密钥,一个叫做"公钥",一个叫做"私钥"。
公钥和私钥是配对使用的,最大的缺点就是运行速度非常慢,比对称加密要慢得多。
使用如下:
- 通过公钥对密文加密,通过私钥对密文解密。
- 也可以反着使用:
- 通过私钥对密文加密,通过公钥对密文加密。
4,数据摘要&&数据指纹
数据摘要(数据指纹):其基本原理是利用单向散列函数(Hash哈数),生成一个固定长度的字符串。数据指纹并不是一种加密机制,但是可以用来判断数据是否被篡改。
一段文本,假设通过一个Hash函数 映射得到的结果是XXXXXYYYY。
如果该文本的数据发生了篡改,改动一点点,通过同样的Hash哈数映射得到的摘要,就会变化很大。此时通过判断得到摘要是否相同,就可以判断出数据是否被篡改过了。
常见算法:MD5,SHA1,SHA256,SHA512等。算法把无限的数据映射成有限的数据 ,因此可能会存在碰撞(两个不同的摘要,映射出的结果相同,但是概率非常低)。
摘要的特征:和加密算法的区别,摘要严格意义不是加密。因为没有解密的过程,没有说从 摘要通过Hash函数又映射到原数据,从摘要很难推出原信息。
二,HTTPS协议加密方案
既然要保证数据安全,就需要对数据进行加密。
网络传输中不能直接传输明文了,而是加密之后的密文。
加密的方式有很多,但是整体可以分成 对称加密和非对称加密。
方案一:只使用对称加密
如果通信双方都各自持有同一个密钥,并且没有别人知道,那么此时的通信就是安全的。
现在的服务器端有一个密钥X,而客户端没有这个密钥。就需要先将 该密钥给客户端发送过去,如果直接传输密钥,密钥可能会被中间人获取。因此密钥的传输也需要加密传输!!!
但是要想对密钥进行加密,此时就需要“密钥的密钥”,这就成了“先有鸡还是现有蛋”的问题。
所以,只使用对称加密的方式就行不通了。
方案二:只使用非对称加密
使用非对称加密,含有两把密钥,一个公钥,一个密钥。
1,浏览器向服务器端发送数据过程
如果服务器先将公钥以明文传输的方式,传输给浏览器,之后浏览器向服务器发送数据,就先使用公钥对数据进行加密再发送,到达服务器端,服务器使用对应的私钥进行解密,就可以拿到原本发送的数据了。过程如下图:
此时的中间人,虽然可以获取到公钥p,但是只有使用私钥p'才能实现解密,而私钥p'只有服务器有,所以中间人无法获取用户发送的数据是什么。可以认为,这种非对称加密,保证了浏览器端向服务器端发送数据时的数据安全。
2,再看看服务器端向浏览器发送数据的过程:
由于服务器端传输公钥的时候,是明文传输的,所以中间人是可以获取到的。
当服务器端发送数据的时候,使用私钥进行加密,那么此时中间人,就可以通过公钥成功解密,获取到服务器端发送的数据,就可以完成篡改数据。
所以,这种加密方式,在服务器对客户端发送数据的时候,可能会存在数据被中间人篡改的问题。
总结:只使用非对称加密的话,貌似可以保证单向传输数据的安全,比如上述的例子。同时,还有一个缺点,非对称加密的算法复杂,造成加密和解密速度较慢。(其实这里的单向传输也是不安全的,后面会讲)。
方案三:双方都使用非对称加密
在方案二中,使用一个非对称加密,可以保证单向的数据传输安全。
那么如果双方都使用非对称加密,是否能够保证双向传输数据的安全???
客户端和服务器端都持有各自的非对称密钥:
假设客户端的非对称密钥为:公钥C,密钥C'
服务器端的非对称密钥为:公钥P,公钥P'
首先进行交换公钥,客户端和服务器端都拿到对方的公钥,这个过程是明文传输的。中间人可以获取,但是公钥不能进行解密,所以中间人不能解析密文,不能篡改我们发送的数据。
1,客户端向服务器端发送数据的时候
使用对方的公钥S对数据进行加密形成密文,密文对于中间人是安全的,无法被解析。到达服务器端,服务器使用私钥进行解密,得到原数据。
2,服务器端向客户端发送数据的时候
同样使用对方的公钥C进行加密形成密文,中间人无法解析。到达客户端后,客户端使用私钥进行解密,得到原数据。
总结:这种方法现在看起来是没有问题的,保证数据的传输安全。但事实上是不安全的,和方案二一样。而且还有一个问题,就是效率问题,两个 对称密钥,频繁的进行加密和解密,肯定会导致效率低下的问题。
方案四:非对称加密+对称加密
服务器端具有非对称密钥:公钥S和私钥S'
客户端具有对称密钥C
过程如下图:在服务器端获取到客户端的对称密钥后,双方就开始使用对称密钥进行通信了。
这样可以大大提高通信的效率。
至此,上述的方案中,方案四最优,解决了效率慢的问题,但是同时还是存在安全问题。就选哟使用接下的方案。
上述四种方案存在安全问题的原因——中间人攻击
以方案四为例,因为方案四是这些中最优的,如果方案四存在问题,那么其他 几个也必然会有问题。
上述的中间人在进行攻击的时候 ,都是在客户端和服务器端握手 建立连接好后,进行攻击的,此时是安全的。但是 如果中间人在一开始握手建立连接的时候就进行攻击,那么就会存在数据安全问题。
服务器具有非对称密钥:公钥S和私钥S'
中间人具有对称密钥:C
同时中间人也有自己的对称密钥:公钥M和私钥M'
- 双方刚开始建立连接时,中间人可以获取到公钥S,将其掉包成自己的公钥M,再发送给客户端,客户端无法 判断该公钥是否 有效。
- 所以 客户端使用 改公钥M,加密密钥C,传输的时候,再次被中间人获取,那么此时中间人就可以解析出对称密钥C。
- 然后为了防止服务器端识别不出来 ,就使用服务器端的公钥进行加密,再发送给服务器端。
- 至此,中间人在双方都不知情的情况下,获取到了双方通信的对称密钥。那么之后的数据 传输 ,相当于中间人来说就是明文传输。因此这种情况 ,是存在数据安全问题的。
总结:这种问题产生的关键原因在于客户端无法判断获取到的公钥是否有效。
需要解决这个问题,首先需要知道几个前置知识:签名,证书以及CA机构。
理解数据签名
签名的形成时基于非对称加密算法的。
数据签名的过程如下:
- 签名者含有非对称密钥:公钥和私钥,私钥自己保存,只有自己知道。公钥分给别人,比如张三,李四,王五等,持有公钥。
- 现在需要传输一份数据,先将该数据通过散列函数映射成散列值,再对散列值使用私钥进行加密,
- 形成签名。再将 签名与原数据拼接再一起,得到包含数字签名的数据。最后,将这个数据发送给张三,李四,王五等。
- 张三,李四,王五接受到数据后,就需要对数据进行验证,判断数据是否被篡改过。判断过程:
- 先将数据与签名进行分离,对数据使用同样的散列函数得到一个散列值,对于签名使用公钥进行解密,得到一个散列值。判断这两个散列值是否相等,如果相等,说明数据没有被篡改过。
上述过程中,只有签名者持有私钥,意味着只有签名者可以对数据进行加密,也就是只有签名者具有签名的能力。其他人也可以进行加密,但是用户只会使用签名者的公钥进行解密。所以,如果数据被篡改了,用户是可以识别出来的。这里的签名者其实就是 CA机构。而张三,李四,王五等就是客户端或浏览器。
理解证书以及CA机构
当客户端第一次向服务器发起请求时,服务器发送的不是一个公钥,而是一个 “证书”。
证书就是一份明文数据,携带了签名 。其中在数据部分就包含一个公钥,该公钥就是服务器发送给客户端的公钥。
那么该证书服务器端是从哪里来的?这时就需要引入CA机构了。
CA机构内部包含非对称密钥:公钥A,私钥A'
注:客户端和服务器一般都内置了可信的CA机构或授权过 的子结构的公钥A
- 当我们写好一个服务器,想要上线该服务器,使用HTTPS协议,就需要去当地的CA机构,申请认证一份CA证书。
- 服务器需要将自己的域名以及公钥交给CA机构,CA机构 先进行信息的审核,审核通过后,对数进行签名 ,就会形成一份证书,包含数据和签名。
- 将该证书签发给服务器,此时服务器就可以直接将该证书发送 给客户端(或浏览器).
- 客户端(或浏览器)在收到证书后,就需要进行验证验证。将证书的数据和签名部分进行分离,数据部分经过相同的散列函数得到一个散列值。签名部分通过内置的公钥进行解密,得到散列值,对比这两个散列值是否相等,就可以识别出 该证书是否被篡改过。这样客户端就可以安全的获取到服务器发送的公钥。
方案五:非对称加密+对称加密+证书认证
完整过程:
- 服务器端首先需要提供自己的域名,和自己的公钥,向CA机构申请认证证书。
- 客户端连接时,首先将证书发送给客户端,其中包含着自己的公钥S。
- 客户端在收到证书后,首先验证证书是否有效。验证成功后,就可以从数据部分提取出服务器的公钥S。
- 客户端适应服务器的公钥S,对密钥C进行加密,将加密后的数据发送给服务器端。
- 服务器端收到后,使用私钥S'进行解密,得到对称密钥C,此后,双方通信使用对称密钥传输数据
中间人有没有可能篡改该证书??
- 由于他没有 CA 机构的私钥,所以无法 形成签名,那么也就没办法对篡改后的证书形成匹配的签名
- 如果强行篡改,客户端收到该证书后会发现明文和签名解密后的值不一致,则说明证书已被篡改,证书不可信,从而终止向服务器传输信息,防止信息泄露给中间人
中间人能否整个掉包证书??
- 因为中间人没有 CA 私钥,所以无法制作假的证书。
- 所以中间人只能向 CA 申请真证书,然后用自己申请的证书进行掉包。
- 这个确实能做到证书的整体掉包,但是别忘记,证书明文中包含了域名等服务端认证信息,如果整体掉包,客户端依旧能够识别出来。
- 永远记住:中间人没有 CA 私钥,所以对任何证书都无法进行合法修改,包括自己的。
为什么签名不直接加密,还要生成摘要??
由于数据可能很大,而这里的加密算法使用的是非对称加密算法,算法复杂度高。所以先对数据形成摘要,再进行签名,可以加快数字签名的验证速度。同时也就可以提高验证 数字签名的速度。
总结
HTTPS工作过程中涉及到的密钥有三组:
第一组(非对称加密): 用于校验证书是否被篡改。 CA机构持有私钥,客户端持有公钥(操作系统包含了可信任的 CA 认证机构有哪些, 同时持有对应的公钥)。服务器在客户端请求时,返回携带签名的证书。客户端通过这个公钥进行证书验证, 保证证书的合法性,进一步保证证书中携带的服务端公钥权威性。
第⼆组(非对称加密): 用于协商生成对称加密的密钥。客户端用收到的 CA 证书中的公钥
(是可被信任的)给随机生成的对称加密的密钥加密,传输给服务器,服务器通过私钥解
密获取到对称加密密钥。
第三组(对称加密): 客户端和服务器后续传输的数据都通过这个对称密钥加密解密。
相关文章:
【Linux网络编程】HTTPS协议原理
目录 一,HTTPS是什么? 1,什么是加密? 2,为什么需要加密? 3,常见的加密方式 对称加密 非对称加密 4,数据摘要&&数据指纹 二,HTTPS协议加密方案 方案一&a…...
【idea】快捷键ctrl+shift+F(Find in files)不起作用
问题描述 在idea中使用快捷键CtrlShiftF,进行内容的搜索,但是弹不出对话框、或有时候能弹出有时候又弹不出。 原因分析 1.怀疑是缓存问题?--清空缓存重启也没什么作用 2.怀疑是idea的问题?--有时行、有时不行,而且…...
「光域」系列激光测距传感器:以光为尺,重构空间认知边界
在150米深的地下矿井中,无人矿卡需要精准识别前方3厘米的落石;在千米高空的风电塔筒检测现场,工程师手持设备要穿透50米雾霭锁定0.1毫米的形变;在智能仓储的立体库房里,穿梭车需在0.3秒内完成货架间距的毫米级校准………...
http和https的区别
HTTP(超文本传输协议)和HTTPS(超文本传输安全协议)是互联网上用于传输数据的两种协议,它们的主要区别如下: 1. 安全性 HTTP:明文传输,数据在传输过程中不加密,容易被窃…...
Dapp开发-如何开发一个dapp
DApp开发全流程指南:从需求到落地的技术实践与生态构建 ——2025年去中心化应用开发方法论与未来趋势解析 一、需求定位与架构设计:构建DApp的技术地基 需求精准定位 功能定义:明确DApp的核心场景(如DeFi借贷、NFT交易、DAO治理&…...
Python邮件处理(使用imaplib和email库实现自动化邮件处理)
在日常工作中,我们经常需要自动化处理电子邮件,比如自动下载附件、解析邮件内容、处理特定格式的数据等。本文将通过一个实际案例,详细介绍如何使用Python的imaplib和email库来实现邮件的自动化处理。 目录 环境准备与库介绍IMAP邮件服务器连…...
时空注意力机制深度解析:理论、技术与应用全景
时空注意力机制作为深度学习领域的关键技术,通过捕捉数据在时间和空间维度上的依赖关系,显著提升了时序数据处理和时空建模能力。本文从理论起源、数学建模、网络架构、工程实现到行业应用,系统拆解时空注意力机制的核心原理,涵盖…...
鸿蒙 UIAbility组件与UI的数据同步和窗口关闭
使用 EventHub 进行数据通信 根据 Stage 模型概念图 UIAbility 先于 ArkUI Page 创建 所以,事件要先 .on 订阅 再 emit 发布 假如现在有页面 Page1 和他的 UIAbility // src/main/ets/page1ability/Page1Ability.ets onCreate(want: Want, launchParam: Ability…...
UI-TARS: 基于视觉语言模型的多模式代理
GitHub:https://github.com/bytedance/UI-TARS 更多AI开源软件:发现分享好用的AI工具、AI开源软件、AI模型、AI变现 - 小众AI 基于视觉语言模型(Vision-Language Model)的 GUI 代理应用,允许用户通过自然语言控制电脑操…...
C++多态讲解
1. 多态的概念 通俗来说,就是多种形态。多态分为编译时多态(静态多态)和运行时多态(动态多态)。编译时多态就是函数重载和函数模板,他们传不同的类型的参数就可以调用不同的函数,通过参数的不同达到多种形态,之所以叫编译时多态&…...
QuecPython+蜂窝模组基础开发
开发准备 硬件: 一块 QuecPython_EC2X_EVB 开发板 (以该开发板为例,更多开发板介绍参见下文开发板列表)USB 数据线 (USB-A TO USB-C)PC (Windows10) 蜂窝模组开发板列表: EC2X_EVBEC600X_EVBEC800X_EVBEC600X/EC800X_CORE_EVBBG95_EVBEC200X_EVBEG91…...
-MAC桢-
MAC桢和IP的关系: 主机A想跨网络和B通信需要IP地址进行路由选择,但一个局域网,比如路由器进行路由选择之前,首先要将数据包发送给路由器B,也就是局域网通信也就是同一个网段的主机进行通信,所以必须通过mac…...
反转链表 - 简单
************* C topic: 206. 反转链表 - 力扣(LeetCode) ************* Give the topic an inspection. It seems really easy. At very first, I think that I will use reverse cammand to kill this topic. But a few seconds later I found that…...
负载均衡 ELB 在 zkmall开源商城高流量场景下的算法优化
在电商大促、直播带货等高频交易场景下,流量突发增长对系统稳定性提出严峻挑战。ZKmll 开源商城通过对负载均衡 ELB(Elastic Load Balancer)算法的深度优化,结合业务场景特性设计动态加权轮询 地域感知 热点分流的混合策略&…...
YOLOv5推理代码解析
代码如下 import cv2 import numpy as np import onnxruntime as ort import time import random# 画一个检测框 def plot_one_box(x, img, colorNone, labelNone, line_thicknessNone):"""description: 在图像上绘制一个矩形框。param:x: 框的坐标 [x1, y1, x…...
创建三个网络,分别使用RIP、OSPF、静态,并每个网络10个电脑。使用DHCP分配IP
DHCP 自动分配IP,集中管理,提高效率 在路由器中设置 Router>en Router#conf t Router(config)#ip dhcp pool ip30 //创建DHCP地址池 Router(dhcp-config)#network 192.168.30.0 255.255.255.0 // 配置网络地址和子网掩码 Router(dhcp-config)#defa…...
[网络层]网络层设备路由器
路由表 路由器能进行路由转发,所依靠的核心数据结构就是路由表,那么路由表是怎么来的, 静态路由和动态路由: 说的是表项,这个表项是静态的还是动态的,就跟ARP缓存表的表项静态动态是一回事, …...
Maven 项目中将本地依赖库打包到最终的 JAR 中
文章目录 前言详细步骤 前言 在现代后端开发中,构建高效且可扩展的 Web 应用程序通常依赖于多种第三方库和内部依赖。这些依赖可以来自公共仓库,也可能是公司内部自研的库或尚未发布到公共仓库的 JAR 包。本文将详细介绍如何在 Maven 项目中处理本地依赖…...
大模型的Lora如何训练?
大模型LoRA(Low-Rank Adaptation)训练是一种参数高效的微调方法,通过冻结预训练模型权重并引入低秩矩阵实现轻量化调整。以下是涵盖原理、数据准备、工具、参数设置及优化的全流程指南: 一、LoRA的核心原理 低秩矩阵分解 在原始权重矩阵$ W 旁添加两个低秩矩阵 旁添加两个…...
CSS3 伪类和使用场景
CSS3 伪类(Pseudo-classes)大全 CSS3 引入了许多新的伪类,以下是完整的 CSS3 伪类分类列表(包括 CSS2 的伪类): 一、结构性伪类(Structural Pseudo-classes) 这些伪类根据元素在文…...
GitDiagram - GitHub 仓库可视化工具
GitDiagram - GitHub 仓库可视化工具 项目链接:https://github.com/ahmedkhaleel2004/gitdiagram 将任何 GitHub 仓库转换为交互式架构图,只需替换 URL 中的 hub 为 diagram。 ✨ 核心功能 即时可视化:将代码库结构转换为系统设计/架构图…...
[特殊字符] 本地大模型编程实战(29):用大语言模型LLM查询图数据库NEO4J(2)
本文将基于langgraph框架,用LLM查询NEO4J图数据库,构建可定制、能应对复杂场景的工作流! 🌟 核心亮点 是否用户提问是否电影相关?生成Cypher查询直接回答执行查询生成最终答案 🧩 模块化实现 1️⃣ 定义状态机 from …...
Python中操作Neo4j图数据库
在当今数据驱动的时代,关系型数据库在处理高度关联的数据时常常显得力不从心。图数据库,尤其是Neo4j,以其独特的图结构和高效的关系查询能力,成为了解决这一问题的利器。结合Python的简洁与强大,我们可以更高效地构建和…...
人工智能时代:解锁职业新身份,从“认证师”到“工程师”的进阶之路
在人工智能技术浪潮席卷全球的今天,技术的飞速迭代正在重塑职业版图。从算法优化到伦理决策,从系统测试到应用开发,AI技术不再只是程序员的专属领域,而是成为各行各业从业者必须掌握的“生存技能”。当企业争相布局AI赛道,个人如何在这场变革中抢占先机?答案或许藏在两个…...
浙江大学 deepseek 公开课 第三季 第3期 - 陈喜群 教授 (附PPT下载) by 突破信息差
浙江大学DeepSeek系列公开课第三季重磅开启,特邀该校多领域权威学者联袂主讲。课程聚焦AI技术如何重构基础学科研究范式,深度解码以DeepSeek为代表的智能模型在交叉学科中的创新应用。在"XAI"融合浪潮下,学术大咖将剖析传统学科与人…...
企业级商城系统容器化部署技术方案
容器化部署已成为企业级商城系统构建高可用、弹性架构的核心技术。结合行业实践与技术趋势,以下从架构设计、工具链选型、关键挑战及解决方案等维度,提供一套完整的实施技术方案: 一、架构设计与技术选型 微服务架构拆分 服务拆分原则&#x…...
Java设计模式之适配器模式:从入门到精通
适配器模式(Adapter Pattern)是Java中最常用的结构型设计模式之一,它像一座桥梁连接两个不兼容的接口,使得原本由于接口不兼容而不能一起工作的类可以协同工作。本文将全面深入地解析适配器模式,从基础概念到高级应用,包含丰富的代码示例、详细注释、使用场景分析以及多维对…...
Spark,RDD中的转换算子
RDD中的转换算子 map算子 对数字1-10进行乘除,*2 filter算子 对数字1-10进行过滤,过滤出偶数 filatMap算子 对单词进行拆分 reduceByKey算子 对具有相同键的所有值进行聚合操作 统计词频词频统计简洁写法 ———————————————— 版权声明…...
牛客周赛 Round 92(再现京津冀蓝桥杯???)
1. 小红的签到题 现在小红希望你写出一个长度为 nnn 的、使用了下划线命名法命名的变量。为了显出特征,请保证该变量至少由两个单词组成。 输入描述: 输入一个正整数 n(3≦n≦100),代表需要构造的变量长度。 输出描述: 输出一个长度为 n 的字符串&#x…...
React 18 的新功能:构建高性能应用的革新之道
React 18 的发布标志着前端开发进入了一个全新的并发时代。作为 React 历史上最重要的版本之一,它不仅带来了底层架构的深度重构,更通过一系列创新功能重新定义了现代 Web 应用的开发范式。这些特性在保持向后兼容的同时,为开发者提供了前所未…...
Python-Flask-Dive
Python-Flask-Dive 适用Python编写一个Flask的快速上手模板,后续如果需要使用Python快速进行we端的验证可以直接下载使用 1-项目创建 本项目仓库代码地址:https://gitee.com/enzoism/python_flask_dive 1-Python环境 ## 1-空工程初始化环境 mkdir my_pr…...
热门CPS联盟小程序聚合平台与CPA推广系统开发搭建:助力流量变现与用户增长
一、行业趋势:CPS与CPA模式成流量变现核心 在移动互联网流量红利见顶的背景下,CPS(按销售付费)和CPA(按行为付费)模式因其精准的投放效果和可控的成本,成为企业拉新与用户增长的核心工具。 CPS…...
16.three官方示例+编辑器+AI快速学习webgl_buffergeometry_lines_indexed
本实例主要讲解内容 这个Three.js示例展示了如何使用**索引几何体(Indexed Geometry)**创建复杂的分形线条图案。通过递归算法生成科赫雪花(Koch Snowflake)曲线,并利用索引缓冲区优化顶点数据存储,实现高效的线条渲染。 核心技术包括: 索…...
PowerBI基础
一、前言 在当今数据驱动的时代,如何高效地整理、分析并呈现数据,已成为企业和个人提升决策质量的关键能力。Power BI 作为微软推出的强大商业智能工具,正帮助全球用户将海量数据转化为直观、动态的可视化洞察。数据的世界充满可能性…...
【MCP】魔搭社区MCP服务(高德地图、everything文件搜索)
【MCP】魔搭社区MCP服务(高德地图、everything文件搜索) 1、上手使用2、环境配置(1)cherry-studio配置(2)添加魔搭大模型服务(如果已经设置了其他大模型服务,可跳过)&…...
适合大数据和宽表的数据存储和分析场景的数据库
适合大数据和**宽表(wide table)**的数据存储和分析场景的数据库,通常需要具备以下几个特性: 支持高吞吐量的写入和读取;能处理百万级列或数百列的宽表结构;良好的压缩和分区能力;支持分布式扩展和容错;一定程度的 SQL 支持或灵活的查询引擎。✅ 推荐数据库类型及代表产…...
ORB特征点检测算法
角点是图像中灰度变化在两个方向上都比较剧烈的点。与边缘(只有一个方向变化剧烈)或平坦区域(灰度变化很小)不同,角点具有方向性和稳定性。 tips:像素梯度计算 ORB算法流程简述 1.关键点检测(使用FAST…...
Node和npm初学
了解Node和npm 目录 1. 什么是 npm? 2. npm有哪些使用场景? 3. npm有什么核心特性? 4.npm的常用命令有那些? 5. 关键配置文件是什么? 6. 安全与最佳实践 7.什么是 Node.js? 8.Node.js有什么优势? 9.如何安装和下载? 10.如何验证安装成功?…...
【android bluetooth 案例分析 03】【PTS 测试 】【PBAP/PCE/SGSIT/SERR/BV-01-C】
1. PBAP/PCE/SGSIT/OFFS/BV-01-C 1. 测试项说明: Please initiate a GATT connection over BR/EDR to the PTS.Description: Verify that the Implementation Under Test (IUT) can initiate GATT connect request over BR/EDR to PTS.测试项名称: Ple…...
VIC-2D 7.0 为平面样件机械试验提供全视野位移及应变数据软件
The VIC-2D系统是一个完全集成的解决方案,它基于优化的相关算法为平面试样的力学测试提供非接触、全场的二维位移和应变数据,可测量关注区域内的每个像素子集的面内位移,并通过多种张量选项计算全场应变。The VIC-2D 系统可测量超过 2000%变形…...
深入理解Embedding Models(嵌入模型):从原理到实战(下)
🐇明明跟你说过:个人主页 🏅个人专栏:《深度探秘:AI界的007》 🏅 🔖行路有良友,便是天堂🔖 目录 一、引言 1、什么是 Embedding 2、什么是嵌入模型 二、构建嵌入…...
labview硬件采集
(1)硬件的描述 (2)实验步骤1: (3)实验步骤2 库名/路径的选择要使用32位的开发资料 (4)实验步骤3 (5)实验步骤4 找到DoSetV12() 设置返回类型 设置chan 设置state labv…...
自动驾驶技术栈——DoIP通信协议
一、DoIP协议简介 DoIP,英文全称是Diagnostic communication over Internet Protocol,是一种基于因特网的诊断通信协议。 DoIP协议基于TCP/IP等网络协议实现了车辆电子控制单元(ECU)与诊断应用程序之间的通信,常用于汽车行业的远程诊断、远…...
uniapp引入七鱼客服微信小程序SDK
小程序引入七鱼sdk 1.微信公众平台引入2.代码引入3.在pagesQiyu.vue初始化企业appKey4.跳转打开七鱼客服 1.微信公众平台引入 账号设置->第三方设置->添加插件->搜索 QIYUSDK ->添加 2.代码引入 在分包中引入插件 "subPackages": [{"root":…...
【SSM-SpringMVC(二)】Spring接入Web环境!本篇开始研究SpringMVC的使用!SpringMVC数据响应和获取请求数据
SpringMVC的数据响应方式 页面跳转 直接返回字符串通过ModelAndView对象返回 回写数据 直接返回字符串返回对象或集合 页面跳转: 返回字符串方式 直接返回字符串:此种方式会将返回的字符串与视图解析器的前后缀拼接后跳转 RequestMapping("/con&…...
【AXI总线专题】AXI-FULL-Master
【AXI总线专题】AXI-FULL-Master 1.axi-full概述2.信号定义3.测试4.仿真波形5.附录clogb2函数axi4中的一些参数解释wishbone总线 6.工程文件 概述 参考文档: 《3-2-03米联客2022版AXI4总线专题-20211123.pdf》 《IHI0022E_amba_axi_and_ace_protocol_spec.pdf》 1.a…...
风车OVF镜像:解放AI开发限制的Ubuntu精简系统
风车OVF镜像:解放AI开发限制的Ubuntu精简系统 AI白嫖续杯一站式-风车ovf AI白嫖续杯一站式解决-风车ovf 前言 作为一名AI开发者,我经常在Windows和Linux环境之间切换开发。然而,Windows平台上的各种免费版限制逐渐成为我工作效率的瓶颈。在寻…...
降低60.6%碰撞率!复旦大学地平线CorDriver:首次引入「走廊」增强端到端自动驾驶安全性
导读 复旦大学&地平线新作-CorDriver: 首次通过引入"走廊"作为中间表征,揭开一个新的范式。预测的走廊作为约束条件整合到轨迹优化过程中。通过扩展优化的可微分性,使优化后的轨迹能无缝地在端到端学习框架中训练,从而提高安全…...
查看购物车
一.查看购物车 查看购物车使用get请求。我们要查看当前用户的购物车,就要获取当前用户的userId字段进行条件查询。因为在用户登录时就已经将userId封装在token中了,因此我们只需要解析token获取userId即可,不需要前端再传入参数了。 Control…...
11 配置Hadoop集群-免密登录
一、复习导入 前面的课程中我们在虚拟机上安装并测试使用了hadoop的示例程序wordcount,并且在准备好了集群的同步工具,那接下来,我们就可去配置hadoop集群了。 二、授新 (一)认识ssh命令 SSH(Secure Shell…...