当前位置: 首页 > news >正文

HTTPS的工作过程

 1.HTTPS协议原理

1.1HTTPS协议的由来

HTTP在传输网络数据的时候是明文传输的,信息容易被窃听甚至篡改,因此他是一个不安全的协议(但效率高)。在如今的网络环境中,数据安全是很重要的(比如支付密码又或者各种私密信息等)因此,为了解决这一安全问题HTTPS由此诞生。HTTPS(Hyper Test Transfer Protocol Secure)在HTTP的基础上加入了SSL/TLS加密机制,通过对传输数据的加密,来确保数据传输过程中的安全性,从而降低信息被窃听和篡改的风险,进而确保用户数据的安全,他是目前网络上应用最广泛和安全的协议。

臭名昭著的“运营商劫持”

下载一个“天天动听”

未被劫持的效果,点击下载按钮,就会弹出天天动听的下载链接

已被劫持的效果,点击下载按钮就会弹出QQ浏览器的下载链接

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

很明显这背后存在某种交易~~     这时候加密就是一种重要的手段

1.2怎么样才能做到传输安全

首先,网络传输的数据要具有安全性,要保证数据安全,最核心的要点就是“加密”,

黑客领域的攻防都是“相对” 的概念~~对抗过程~~

但是可以做到,即使数据被黑客拿到了,他也解析不了、无法篡改~~也能起到安全的效果~~

加密来做到~~ 

你加密的数据,理论上来说,也有可能被黑客破解~~

加密的成本很低,破解的成本很高~~

只要破解的成本,超出了要保护数据本身的价值,就是安全的!!

加密对称:加密和解密,使用的是同一个密钥。

非对称加密:加密和解密,使用的是两个密钥 这两个密钥,k1和k2是成对的,可以使用k1来加密,此时就是k2解密;也可以使用k2来加密,此时就是k1解密。

这个特性的背后有一系列的数学原理~~

两个密钥,就可以一个公开出去,称为“公钥”,另一个自己保存好,称为“私钥”(手里只有一把的话,是无法知道另一把是啥的)。

1.3HTTP和HTTPS的选择

上述说HTTP是明文传输数据的,即HTTP不会对数据进行保护(加密/解密)那么另一种意思也就是说:HTTP在传输数据时,会做的事情比较少,因此他的效率相比于HTTPS是高的。

因此,一般情况下,如果网络环境比较安全,比如在公司的内网中传输数据,可能会优先使用HTTP以此来提高数据传输的效率和降低传输延迟。另一种就是对数据机密性和完整性比较高的要求时,就会优先使用HTTPS协议,来确保数据在传输的过程中安全。

总而言之,HTTP和HTTPS的选择要根据环境而定。

2.HTTPS工作过程

只要针对HTTPS的数据进行解密了,就能够得到HTTP格式数据。

1.1中所述的运营商劫持,无论是修改referer还是修改返回的链接(body),本质上都是明文传输惹的祸。这是就需要引入加密,对上诉传输数据进行保护~~  主要是针对header和body进行加密~

加密的方式有很多,但整体可以分成两大类:对称密文 非对称密文

2.1引入对称加密

通过对称加密的方式,针对传输的数据进行加密操作。

1.对称加密的时候,客户端和服务器需要使用同一个密钥。

2.不同的客户端,需要使用不同的密钥。

(如果所有客户端的密钥都相同,加密如同虚设,黑客很容易拿到密钥)

这就意味着每个客户端连接服务器的时候,都需要自己生成一个随机的密钥,并且把这个密钥告知服务器,(也不应定是客户端生成,服务器也行,也是需要告诉客户端的)

这就是问题的关键!!!密钥需要传输给对方的,一旦黑客拿到了这个密钥,意味着加密操作就无意义了~~

这里我们需要考虑,针对咱们的密钥,也进行密文传输~~

假设使用对称加密,引入key2针对key进行加密,意味着需要把key2也传输给服务器,服务器才能解密拿到key~~ (但是key2还是可能被黑客拿到~~)

2.2引入非对称加密 

使用非对称加密,主要目的就是为了对对称加密进行加密,确保对称密钥的安全性~~

不能使用非对称加密,针对后续传输的各种header body等进行加密,而是只能使用非对称加密去加密对称密钥~~(非对称加密的加密解密成本(消耗CPU资源)钥远远高于对称加密)

少来少去的用点都可以,如果大规模使用,就难以承担了~~

此处就让服务器持有私钥(只有服务器知道)客户端持有公钥(黑客也能知道)

客户端就可以使用公钥,对已生成的对称密钥进行加密~~

黑客虽然手里有公钥,但是密文需要通过私钥才能进行解密,私钥黑客拿不到~~

黑客就无法对这个数据解密,也就不能拿到888888对称密钥了~~

只要888888安全到达服务器,后续服务器和客户端之间就可以使用888888作为对称加密的密钥,此时黑客就无法破解后续的数据了~~

此处的公钥 私钥也可以这样理解

有些老的住房有信箱

你手里有信箱钥匙(私钥),邮递员手里有锁头(公钥)~~

流程:服务器生成一对非对称密钥,私钥服务器自己持有,公钥则可以告知任何的客户端。

客户端在连接上服务器之后,就需要先从服务器这边拿到公钥(公钥本身就可以公开出去,不需要加密传输)客户端生成对称密钥,拿着公钥对 对称密钥进行加密。

此时就可以把加密后的密文进行传输了,由于想要解密,必须通过私钥,而私钥只有服务器自己知道,此时这样的加密数据就可以比较安全的到达服务器了

服务器通过私钥解密之后得到了对称密钥,接下来和客户端之间的通信就通过对称加密来完成了。

此时黑客拿到的是一个key加密后的结果,此时黑客要是想要解密,需要知道pri,而pri私钥只要服务器自己知道,黑客拿不到。(黑客监听中间的通信数据,要比黑入服务器这边容易一些,如果都能黑进服务器了,大概就可以直接拖数据库了,用户信息都被拿到了)

SSL内部完成工作,使用HTTPS的时候,底层也是TCP,先进行TCP三次握手,TCP连接打通之后,就要进行SSL的握手了(交换密钥的过程)后面才是真正传输业务数据(完整HTTP的请求响应了)

2.3仍然存在问题  

上述操作,仍然存在重大的安全漏洞,黑客仍然是有办法获取到对称密钥key的~  中间人攻击

针对上述问题,如何解决?

最关键的一点,客户端拿到公钥的时候,要能有办法验证,这个公钥是否是真的,而不是黑客伪造的。要求服务器这边要提供一个“证书”

证书是一个结构化的数据(里面包含很多属性,最终以字符串的形式提供)

证书中会包含一些列的信息。

比如,服务器主域名,公钥,证书有效期.......

证书是搭建服务器的人,要从第三方的公正机构进行申请的~~(申请的时候当然要提交材料,人家审核)

2.4证书

证书验证过程~

证书:

服务器的域名....

证书的有效时间......

服务器的公钥.......

公证机构的信息.....

...................

证书的签名..... 

  ||

颁布证书的公正机构 会在发布证书的时候,给这个证书计算出一个校验和

然后公证机构使用自己的私钥(和服务器的私钥无关)针对校验和进行加密,此时就得到了证书的签名。

此处所谓的“签名”本质上是一个经过加密的校验和!! 把证书中其他的字段通过一系列的算法(CRC,MD5等)得到一个较短的字符串 ==> 校验和  如果两份数据内容一样,此时的校验和就一定是相同的;如果校验和不同,两份数据的内容则一定不同(逆否命题)

客户端拿到证书以后,主要做两件事:

1.按照同样的校验和算法,把证书的其他字段都重新算一遍,得到校验和1;

2.使用系统中内置的公证机构公钥,对证书的签名进行解密,得到校验和2;

此时,就可以对比,看这俩校验和是否一致!!

如果一致,说明证书是没有被修改过的,就是原版证书。

如果过不一致,说明证书被别人篡改过了(比如黑客如果替换了自己的公钥,此时算出来的校验码就一定改变)

此时客户端就能识别出来了!!

黑客无法修改证书中的内容!!

1.如果黑客直接修改公钥,不能改签名。

此时客户端校验和是一定不一样的,就识别出来了

2.如果黑客修改公钥,也尝试重新生成签名~~

如果黑客不知道公证机构的私钥,所以黑客无法重新生成加密签名~~

如果黑客拿自己的私钥加密呢??客户端这边拿着公证机构的公钥也会解密失败~~

上述操作就把黑客篡改证书的行为给堵死了

3.黑客能不能自己也去公证机构申请个证书??然后把自己的证书替换掉服务器的证书呢??

还是不行

域名是唯一的!!黑客申请的证书的域名,和服务器的域名肯定不同!!

客户端拿到证书之后,一看到域名都不一样,直接就知道证书是假冒的,都不用校验和了

当然,上述的讨论过程,所谓的安全,也不是绝对安全的,上述的安全本质上都是基于非对称加密体系,非对称加密体系,也不是无懈可击的,只不过破解这样的加密体系,需要的计算量非常大,超出了现有计算机的算力上限!!

当然以后随着算力的提升,尤其是量子计算机崛起,我们的算力又会大幅度的提升,对象有点密码学体系就会造成重大冲击~~

相关文章:

HTTPS的工作过程

1.HTTPS协议原理 1.1HTTPS协议的由来 HTTP在传输网络数据的时候是明文传输的,信息容易被窃听甚至篡改,因此他是一个不安全的协议(但效率高)。在如今的网络环境中,数据安全是很重要的(比如支付密码又或者各…...

Java并发编程学习之从资本家的角度看多线程和并发性(一)

目录 前言前置知识一、单线程时代二、为什么要有多线程,多线程的优点?三、使用多线程会遇到什么问题?四、多线程和并发编程的关系总结 前言 这篇文章是打开Java多线程和并发编程的大门的开始,如标题《从老板的角度看多线程和并发…...

基于STM32设计的智能宠物喂养系统(华为云IOT)_273

文章目录 一、前言1.1 项目介绍【1】项目开发背景【2】设计实现的功能【3】项目硬件模块组成【4】设计意义【5】国内外研究现状【6】摘要1.2 设计思路1.3 系统功能总结1.4 开发工具的选择【1】设备端开发【2】上位机开发1.5 参考文献1.6 系统框架图1.7 系统原理图1.8 实物图1.9…...

Mybatis-Plus的主要API

一、实体类操作相关API BaseMapper<T>接口 功能&#xff1a;这是 MyBatis - Plus 为每个实体类对应的 Mapper 接口提供的基础接口。它提供了一系列基本的 CRUD&#xff08;增删改查&#xff09;操作方法。例如insert(T entity)方法用于插入一条记录&#xff0c;d…...

Pillow:强大的Python图像处理库

目录 一、引言 二、Pillow 库的安装 三、Pillow 库的基本概念 四、图像的读取和保存 五、图像的基本属性 六、图像的裁剪、缩放和旋转 七、图像的颜色调整 八、图像的滤镜效果 九、图像的合成和叠加 十、图像的绘制 十一、示例程序&#xff1a;制作图片水印 十二、…...

Springboot定时任务详解

文章目录 Springboot定时任务详解一、引言二、cron表达式三、使用Scheduled注解1、开启定时任务2、添加定时任务 四、使用TaskScheduler接口1、注入TaskScheduler实例 五、集成Quartz框架1、集成Quartz 六、实际使用示例七、总结 Springboot定时任务详解 一、引言 在现代软件…...

【Linux】环境ChatGLM-4-9B 模型之 openai API 服务

一、摘要 最近看到 Function Call 比较感兴趣,它的核心是赋予大模型能够调用外部API的能力,能够解决大模型功能扩展性问题,允许模型调用外部数据库或API,提供特定领域的详细信息;解决信息实时性问题,模型可以实时获取最新数据;解决数据局限性问题,大模型训练数据虽多但…...

mobi文件转成pdf

将 MOBI 文件转换为 PDF 格式通常涉及两个步骤&#xff1a; 解析 MOBI 文件&#xff1a;需要提取 MOBI 文件的内容&#xff08;文本、图片等&#xff09;。将提取的内容转换为 PDF&#xff1a;将 MOBI 文件的内容渲染到 PDF 格式。 可用工具 kindleunpack 或 mobi&#xff1…...

Linux---对缓冲区的简单理解--第一个系统程序

前序&#xff1a; 首先先理解一下什么是回车与换行&#xff1b;回车和换行是两个概念&#xff0c;它们不是一个东西&#xff1b; 回车:光标回到开始&#xff1b;换行:换到下一行&#xff1b; 如下图&#xff1a; 行缓冲区 如何理解缓冲区问题&#xff1f; 可以认为&#xff0…...

word poi-tl 表格功能增强,实现表格功能垂直合并

目录 问题解决问题poi-tl介绍 功能实现引入依赖模版代码效果图 附加&#xff08;插件实现&#xff09;MergeColumnData 对象MergeGroupData 类ServerMergeTableData 数据信息ServerMergeTablePolicy 合并插件 问题 由于在开发功能需求中&#xff0c;word文档需要垂直合并表格&…...

鸿蒙实现数据管理

目录&#xff1a; 1、鸿蒙实现数据管理的三种方式2、用户首选项3、键值型数据管理3.1、获取KVManager实例&#xff0c;用于管理数据库对象3.2、创建并获取键值数据库3.3、调用put()方法向键值数据库中插入数据3.4、调用get()方法获取指定键的值3.5、调用delete()方法删除指定键…...

图片上传HTML

alioss sky:jwt:# 设置jwt签名加密时使用的秘钥admin-secret-key: itcast# 设置jwt过期时间admin-ttl: 7200000# 设置前端传递过来的令牌名称admin-token-name: tokenalioss:endpoint: ${sky.alioss.endpoint}access-key-id: ${sky.alioss.access-key-id}access-key-secret: $…...

golang 代发邮件支持附件发送,outlook案列,其他邮箱需要替换对应邮箱服务域名

GPT问答实例 import pandas as pd from openai.embeddings_utils import get_embedding, cosine_similarity import openai import os import logging as logger from flask_cors import CORS import os openai.api_key os.getenv(OPENAI_API_KEY)class Chatbot():def parse_…...

输出绝对值

输出绝对值 C语言代码C 代码Java代码Python代码 &#x1f490;The Begin&#x1f490;点点关注&#xff0c;收藏不迷路&#x1f490; 输入一个浮点数&#xff0c;输出这个浮点数的绝对值。 输入 输入一个浮点数&#xff0c;其绝对值不超过10000。 输出 输出这个浮点数的绝对…...

docker desktop打包配置国内镜像地址

打包遇到无法访问外网资源&#xff0c;直接配置国内镜像地址 直接加入如下代码就行&#xff1a; {"builder": {"gc": {"defaultKeepStorage": "20GB","enabled": true}},"experimental": false,"registry-m…...

鸿蒙Next学习-监听指定页面显示/页面生命周期

自定义组件监听页面生命周期 使用无感监听页面路由的能力&#xff0c;能够实现在自定义组件中监听页面的生命周期。 // Index.ets import { uiObserver, router, UIObserver } from kit.ArkUI;Entry Component struct Index {listener: (info: uiObserver.RouterPageInfo) &g…...

计算机网络 —— HTTPS 协议

前一篇文章&#xff1a;计算机网络 —— HTTP 协议&#xff08;详解&#xff09;-CSDN博客 目录 前言 一、HTTPS 协议简介 二、HTTPS 工作过程 1.对称加密 2.非对称加密 3.中间人攻击 4.引入证书 三、HTTPS 常见问题 1.中间人能否篡改证书&#xff1f; 2.中间人能否调…...

Oracle之表空间迁移

问题背景&#xff1a;一个数据表随着时间的累积&#xff0c;导致所在表空间占用很高&#xff0c;里面历史数据可以清除&#xff0c;保留近2个月数据即可 首先通过delete删除了2个月以前的数据。 按网上的教程进行空间压缩&#xff0c;以下sql在表所在用户执行: -- 允许表重新…...

web组态可视化编辑器

随着工业智能制造的发展&#xff0c;工业企业对设备可视化、远程运维的需求日趋强烈&#xff0c;传统的单机版组态软件已经不能满足越来越复杂的控制需求&#xff0c;那么实现web组态可视化界面成为了主要的技术路径。 行业痛点 对于软件服务商来说&#xff0c;将单机版软件转…...

SpringMVC纯注解快速开发

此文章适合具有一定的java基础的同学看哦&#xff0c;如果有看不懂的基本代码还是先补补java基础哦。 此教程带您不使用xml文件而是纯注解开发&#xff0c;易懂、快捷、迅速&#xff0c;从0开始搭建&#xff0c;很快就能构建起一个SpringMVC项目&#xff0c;能学到两种使用tom…...

[读论文] Compositional 3D-aware Video Generation with LLM Director

Abstract 近年来&#xff0c;通过强大的生成模型和大规模互联网数据&#xff0c;文本到视频生成领域取得了显著进展。然而&#xff0c;在生成视频中精确控制单个概念&#xff08;如特定角色的动作和外观、视角的移动&#xff09;方面&#xff0c;仍存在巨大挑战。为此&#xff…...

FFmpeg 4.3 音视频-多路H265监控录放C++开发十八,ffmpeg解复用

为啥要封装和解封装呢&#xff1f; 1.封装就相当于将 h264 和aac 包裹在一起。既能播放声音&#xff0c;也能播放视频 2.在封装的时候没指定编码格式&#xff0c;帧率&#xff0c;时长&#xff0c;等参数&#xff1b;特别是视频&#xff0c;可以将视频帧索引存储&#xff0c;…...

ubuntu系统安装docker

1、 安装必要的依赖 sudo apt install apt-transport-https ca-certificates curl software-properties-common2、添加 Docker 的官方 GPG 密钥 curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -3、添加 Docker 的 APT 源 sudo add-apt-repos…...

STM32 BootLoader 刷新项目 (十三) Python上位机介绍

STM32 BootLoader 刷新项目 (十三) Python上位机介绍 大家好&#xff0c;这是我们STM32 BootLoader的最后一篇文章了&#xff0c;讲述用Python写的上位机&#xff0c;也更新了半年时间了&#xff0c;谢谢大家的支持&#xff0c;到目前为止&#xff0c;已经更新了12篇文章了&am…...

美畅物联丨智能监控,高效运维:视频汇聚平台在储能领域的实践探索

在当今全球能源格局不断变化的大背景下&#xff0c;对清洁能源的需求正以惊人的速度增长。储能项目作为平衡能源供需、提升能源利用效率的关键环节&#xff0c;其规模和复杂度也在不断攀升。在储能项目的运营管理过程中&#xff0c;安全监控、设备运维以及数据管理等方面面临着…...

T C P

文章目录 基于UDP应用场景 TCP协议TCP 协议段格式确认应答机制16位窗口大小 下定义32位序号和32位确认序号序号是什么&#xff1f;确认序号 基于UDP应用场景 UDP&#xff0c;tcp这样的协议根本不是直接谈UDP。tcp的应用场景&#xff0c;一定是上层写了应用层协议&#xff0c;所…...

MongoDB的简单使用

MongoDB(文档数据库)的简单使用 MongoDB最好的学习资料就是他的官方文档&#xff1a;SQL 到 MongoDB 的映射图表 - MongoDB 手册 v8.0 1.MongoDB CRUD操作 1.1Insert操作 基本方法&#xff1a; db.collection.insertOne() 将单个文档(document)插入集合中 db.collectio…...

【Exp】# Microsoft Visual C++ Redistributable 各版本下载地址

Microsoft官方页面 https://support.microsoft.com/en-us/help/2977003/the-latest-supported-visual-c-downloads Redistributable 2019 X86: https://aka.ms/vs/16/release/VC_redist.x86.exe X64: https://aka.ms/vs/16/release/VC_redist.x64.exe Redistributable 201…...

【MySQL】表的约束

目录 一、非空约束not null 二、默认值约束default 三、列描述comment 四、填充零zerofill 五、主键primary key 六、自增长auto_increment 七、唯一键unique 八、外键foreign key 一、非空约束not null 如果不对一个字段做非空约束&#xff0c;则默认为空。但空数据无…...

c++高级篇(四) ——Linux下IO多路复用之epoll模型

IO多路复用 —— epoll 前言 在之前我们就已经介绍过了select和poll,在作为io多路复用的最后一个的epoll,我们来总结一下它们之间的区别: a select 实现原理 select 通过一个文件描述符集合&#xff08;fd_set&#xff09;来工作&#xff0c;该集合可以包含需要监控的文件…...

基于Java Springboot环境保护生活App且微信小程序

一、作品包含 源码数据库设计文档万字PPT全套环境和工具资源部署教程 二、项目技术 前端技术&#xff1a;Html、Css、Js、Vue、Element-ui 数据库&#xff1a;MySQL 后端技术&#xff1a;Java、Spring Boot、MyBatis 三、运行环境 开发工具&#xff1a;IDEA/eclipse 微信…...

.NET 9 中 LINQ 新增功能实现过程

本文介绍了.NET 9中LINQ新增功能&#xff0c;包括CountBy、AggregateBy和Index方法,并提供了相关代码示例和输出结果&#xff0c;感兴趣的朋友跟随我一起看看吧 LINQ 介绍 语言集成查询 (LINQ) 是一系列直接将查询功能集成到 C# 语言的技术统称。 数据查询历来都表示为简单的…...

【Vue3中Router使用】

Vue3中Router使用 1. 安装vue-router组件2. 建两个测试页面2.1 测试页面Home.vue2.2 测试页面Category.vue 3. 创建路由对象4. 在入口main.js中引入router把App.vue改成路由页面5. 测试5.1 关闭检查解决ESlint报错5.2 改文件名解决ESlint检查报错测试WebHashHistory 和WebHisto…...

性能测试攻略(一):需求分析

性能测试成为软件开发和运维过程中不可或缺的一环。性能测试不仅能够帮助我们了解系统在特定条件下的表现&#xff0c;还能帮助我们发现并解决潜在的性能问题。那么我们怎么做一次完整的性能测试呢&#xff1f;首先&#xff0c;我们需要进行需求分析&#xff0c;来明确我们的测…...

android WebRtc 无法推流以及拉流有视频无声音问题

最近在开发使用WebRtc进行视频通话和语音通话&#xff0c;我使用的设备是MTK的手机&#xff0c;期间后台的技术人员几乎没法提供任何帮助&#xff0c;只有接口和测试的web端&#xff0c;有遇到不能推流。推流成功网页端有画面有声音&#xff0c;但是安卓端有画面&#xff0c;没…...

Socket编程TCP

【Linux】TCP编程 实验&#xff1a;通过TCP通信—在客户端输入要执行的指令&#xff0c;接收执行结果&#xff0c;另服务端接收指令并执行&#xff0c;向客户端发送执行结果 //主函数 #include<iostream> #include<string> #include"log.hpp" #include…...

《以 C++为笔,绘就手势识别人机交互新画卷》

在科技浪潮汹涌澎湃的当下&#xff0c;人机交互领域正处于深刻变革的前沿阵地。从古老的命令行输入到图形化界面的鼠标点击&#xff0c;再到如今风靡全球的触摸操控&#xff0c;每一次交互方式的革新都重塑了我们与电子设备的沟通模式。而近年来&#xff0c;手势识别技术作为一…...

【CSS】小球旋转loading加载动画

效果 css小球旋转loading动画 代码 <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8" /><meta name"viewport" content"widthdevice-width, initial-scale1.0" /><title>Document<…...

Leetcode经典题6--买卖股票的最佳时机

买卖股票的最佳时机 题目描述&#xff1a; 给定一个数组 prices &#xff0c;它的第 i 个元素 prices[i] 表示一支给定股票第 i 天的价格。 你只能选择 某一天 买入这只股票&#xff0c;并选择在 未来的某一个不同的日子 卖出该股票。设计一个算法来计算你所能获取的最大利润。…...

BA是什么?

目录 1.EKF的步骤 一、问题定义与模型建立 二、线性化处理 三、应用卡尔曼滤波 四、迭代与收敛 五、结果评估与优化 注意事项 2.BA问题的步骤 一、问题定义与数据准备 二、构建优化模型 三、选择优化算法 四、执行优化过程 五、结果评估与优化 六、应用与验证 1.…...

【IDEA】报错:Try to run Maven import with -U flag (force update snapshots)

问题 IDEA运行项目报错&#xff1a;Try to run Maven import with -U flag (force update snapshots) 原因 IDEA 的项目运行绑定的maven有问题&#xff0c; 解决问题 检查项目绑定的maven配置...

MATLAB提供的窗函数

加窗法 为什么使用加窗法&#xff1f; 在数字滤波器设计和频谱估计中&#xff0c;加窗函数的选择对于整体结果的质量有重大影响。加窗的主要作用是减弱因无穷级数截断而产生的吉布斯现象的影响。 windowDesigner 六种常见的窗函数 根据离散时间傅里叶变换的乘法性质&a…...

git 使用配置

新拿到机器想配置git 获取代码权限&#xff0c;需要的配置方法 1. git 配置用户名和邮箱 git config --global user.name xxxgit config --global user.email xxemail.com 2. 生成ssh key ssh-keygen -t rsa -C "xxemail.com" 3. 获取ssh key cat ~/.ssh/id_rsa.…...

【深度学习】深入解析长短期记忆网络(LSTMs)

长短期记忆网络&#xff08;Long Short-Term Memory networks, LSTMs&#xff09;是一种特殊的递归神经网络&#xff08;RNN&#xff09;&#xff0c;专门设计用来解决标准 RNN 在处理长序列数据时的梯度消失和梯度爆炸问题。LSTMs 在许多序列数据任务中表现出色&#xff0c;如…...

vue watch和computed的区别,computed和method的区别

发现宝藏 前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享一下给大家。【宝藏入口】。 在 Vue 中&#xff0c;watch、computed 和 methods 都是常用的响应式功能&#xff0c;它们的用途和工作方式有所不同。下面分别解…...

搭建高可用负载均衡系统:Nginx 与云服务的最佳实践

搭建高可用负载均衡系统&#xff1a;Nginx 与云服务的最佳实践 引言 在项目开发过程中&#xff0c;我们通常在开发和测试阶段采用单机架构进行开发和测试。这是因为在这个阶段&#xff0c;系统的主要目的是功能实现和验证&#xff0c;单机架构足以满足开发人员的日常需求&…...

FFmpeg 4.3 音视频-多路H265监控录放C++开发十九,ffmpeg复用

封装就是将 一个h264&#xff0c;和一个aac文件重新封装成一个mp4文件。 这里我们的h264 和 aac都是来源于另一个mp4文件&#xff0c;也就是说&#xff0c;我们会将 in.mp4文件解封装成一路videoavstream 和 一路 audioavstream&#xff0c;然后 将这两路的 avstream 合并成一…...

Node.js JWT认证教程

Node.js JWT认证教程 1. 项目介绍 JSON Web Token (JWT) 是一种安全的跨域身份验证解决方案&#xff0c;在现代Web应用中广泛使用。本教程将详细讲解如何在Node.js中实现JWT认证。 2. 项目准备 2.1 初始化项目 # 创建项目目录 mkdir nodejs-jwt-auth cd nodejs-jwt-auth# …...

nn.utils.clip_grad_value_

nn.utils.clip_grad_value_ 是 PyTorch 中的一个函数&#xff0c;用于在训练过程中对模型的梯度进行裁剪&#xff0c;以防止梯度爆炸&#xff08;gradient explosion&#xff09;问题。该函数对梯度的每个元素进行裁剪&#xff0c;将其限制在一个指定的最大绝对值范围内。裁剪后…...

Java后端面试模板(技术面)

1、自我介绍模板 面试官您好&#xff01;我是来自----大学计算机学院的一名大三学生&#xff0c;我的名字叫—。 在大学期间&#xff0c;我主要自学了一些主流的Java技术栈&#xff0c;其中主要包括&#xff1a;Java主流的框架&#xff1a;Spring MVC Spring Boot Spring Clou…...