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

【WEB】网络传输中的信息安全 - 加密、签名、数字证书与HTTPS

文章目录

  • 1. 概述
  • 2. 网络传输安全
    • 2.1.什么是中间人攻击
    • 2.2. 加密和签名
      • 2.2.1.加密算法
      • 2.2.2.摘要
      • 2.2.3.签名
    • 2.3.数字证书
      • 2.3.1.证书的使用
      • 2.3.2.根证书
      • 2.3.3.证书链
    • 2.4.HTTPS

1. 概述

本篇主要是讲解讲一些安全相关的基本知识(如加密、签名、证书等),以及HTTPS如何实现的信息安全传输 不涉及复杂的底层逻辑

在CS架构中,客户端和服务端之间的网络交互一般是使用HTTP协议来完成的,在HTTP协议的请求体和响应体中会包含一次请求的报文(或者说参数),而这些参数往往是明文传输的,有可能会被有心之人拦截,从而获取到参数中的敏感或保密的信息。因此,HTTPS(Hyper Text Transfer Protocol Secure) 应运而生,它在 HTTP(超文本传输协议)的基础上通过传输加密身份认证保证了传输过程的安全性。

2. 网络传输安全

2.1.什么是中间人攻击

在开篇中提到了HTTP协议是不安全的,这种不安全主要体现在两个方面:信息泄露信息伪造,在客户端和服务器中间,有一个中间人可以接收到响应传输的信息。
在这里插入图片描述

  • 信息泄露:中间人可以获取到传输过程中的敏感、保密信息。
  • 信息伪造:中间人可以将自己伪造成客户端或服务器,发送虚假信息。

上述的情况,一般会被称为中间人攻击,在日常使用网络的过程中,如果没有注意网络的安全,例如:使用了未知的公用WiFi、使用了不安全的网络设备、木马感染、DNS劫持等,都容易遭到中间人攻击。


显然,我们不能只通过用户自行注意网络的使用来解决信息传输安全问题,所以我们应该建立安全的传输机制,涉及到两个重要的概念:加密签名

2.2. 加密和签名

2.2.1.加密算法

在这里插入图片描述
所谓加密,就是将原有明文信息通过加密算法转换成为一串没有确认含义,无法识别的字符,也就是密文信息,这样即使信息泄露出去,获取信息的人也无法识别其含义,起到保密的效果。

通过是否能将密文信息重新解密成明文信息的维度,将加密算法区分为:单向加密算法和双向加密算法。

  • 单向加密算法:无法解密,常见的算法是MD5SHA256,一般运用在生成摘要信息保存用户密码等场景。
  • 双向加密算法:可以解密,最常见的算法是AES与RSA,一般运用在信息传输中,保证信息传输的安全性。

在双向加密算法中,要达成解密的效果,会在加密和解密时使用到密钥,通过加解密是否使用同一个密钥,将双向加密算法区分为:对称加密算法和非对称加密算法。

  • 对称加密:通过一把密钥加密和解密,客户端和服务端都持有相同的密钥。
  • 非对称加密:将密钥分为公钥私钥,公钥加密时只能用私钥解密,反之,私钥加密时,只能用公钥解密。两种加密方式使用场景不用,其中公钥加密是将信息转换为密文,防止信息泄露,而私钥加密是用于签名,用于身份认证(即确认是某个人、某个公司机构等发送的信息)。

对比一下对称加密和非对称加密,对称加密速度快,密钥安全性不高。非对称加密速度相对较慢,通过对外只暴露公钥的方式增强了密钥的安全性,同时由于其特性,还可以做身份认证。


说到这里,提一嘴脱敏,加密和脱敏容易混淆。
加密是将明文信息转换为密文信息,密文中无法提炼出有用的信息。
脱敏则是对原有的明文信息做部分修改覆盖,避免敏感信息暴露的同时,还保留了一部分有用的业务信息,常见的就是姓名、身份证、手机号等数据通过 * 替换掉中间一部分数据。

2.2.2.摘要

对传输的信息做加密是为了防止信息泄露,那么摘要和签名就是为了防止信息伪造。

所谓摘要,就是一串和内容相关的哈希值,通过单向加密算法,如SHA256,将原文生成生成一个256位的二进制串。只要原文发生了任何改动,这个摘要信息都将会完全不同。
在这里插入图片描述
通过这样的特性,在不需要对原文进行逐字逐句对比的情况下,快速的验证原文是否被修改了。
在一些开源软件的下载页面,除了源码包之外,还有摘要包下载,用户可以下载之后,用样的算法做摘要,通过比较摘要的值确认源码是否被修改。


当然,除了被有心人篡改了源码内容之外,摘要验证往往还会用于校验文件的完整性。(例如因为网络等原因导致源文件没有下载完整的情况)

2.2.3.签名

签名是一种更高级的安全措施,可以同时验证信息完整性和信息真实性,它是在摘要的基础上,通过非对称加密算法对摘要信息做了一次加密。

所谓信息的真实性,就是指信息来源于官方发布而不是由第三方篡改的。
拿上面的例子来说,由于SHA256是通用算法,第三方拿到源码包并篡改后,重新生成了一个摘要包,将这两个包都放在伪造的网站上,用户下载之后无法验证来源的真实性。在这种场景下,官方可以通过非对称加密算法,使用私钥对摘要做加密,用户下载了签名之后,通过官方发布的公钥进行解密,再将原始摘要与新生成的摘要做对比,以此来确认下载的源码的真实性。

在这里插入图片描述
不同的网站可能会使用不同的加解密算法,细节上有细微的差异,但大体的流程都如上图所示。在Maven的官网中,下载界面就可以下载这三种包:
在这里插入图片描述
通过上面的verify the signature以及KEYS可以获取到校验方法及对应的公钥。
在这里插入图片描述

2.3.数字证书

2.3.1.证书的使用

数字证书是一种包含了公钥、所属组织信息、证书颁发机构、证书签名等信息的数字文件。
如果做过金融支付相关的业务,对接过银行或者三方支付平台的话,或多或少都会接触当数字证书。
这样的证书,多数情况是的就是通过操作系统生成的一个自签名的证书文件。我们在按照接口文档写完代码之后,下一步就是互相交换数字证书,在后续的接口调用过程中,会使用到对方的数字证书做签名验证,防止支付中的关键信息被中间人篡改。

而在CS架构中,客户端想要获取证书,在第一次访问网站时会从服务器中拉取证书,这种情况下,自签名的数字证书无法保证通信的安全性。
在这里插入图片描述
在这种情况下,要保证信息传输的安全,客户端就需要有一种机制可以验证证书的合法性。
这种机制就是在当两方无法确认对方的身份时,引入一个权威的第三方做身份确认,而这里的第三方指的就是根证书

2.3.2.根证书

所谓的根证书,就是各个权威的CA(Certificate Authority)机构的自签名证书,它们会预装在操作系统中的证书,用于浏览器或其他类型的客户端校验服务器提供的证书合法性。国内常见的CA机构有:CFCA、BJCA、SHECA等。

打开谷歌浏览器的证书管理,可以看到这样的内容:
在这里插入图片描述
点进去之后就可以看到预装的根证书了
在这里插入图片描述

企业机构可以通过权威的CA机构申请证书,将证书安装到服务器上,这样客户端就能校验出这个正式是否合法了。
在这里插入图片描述

2.3.3.证书链

处于根证书安全管理的灵活性业务需要等原因,企业申请的证书往往不是由根证书直接签发的,而是由一个层次关系:
在这里插入图片描述
这样的层次关系叫做证书链,在客户端访问服务器的时候,客户端会获取到服务器返回的证书链,再通过递归的方式一层层的向上校验,直到根证书校验通过。

2.4.HTTPS

在使用HTTPS协议时,客户端会通过TLS与服务器握手尝试建立一个安全连接通道,后续的请求都是通过这个通道来执行的。

在这里插入图片描述
这种设计方式既利用了非对称加密的安全性,又利用了对称加密的性能。后续的数据传输都是通过客户端生成的对称密码来进行加密和签名的。

相关文章:

【WEB】网络传输中的信息安全 - 加密、签名、数字证书与HTTPS

文章目录 1. 概述2. 网络传输安全2.1.什么是中间人攻击2.2. 加密和签名2.2.1.加密算法2.2.2.摘要2.2.3.签名 2.3.数字证书2.3.1.证书的使用2.3.2.根证书2.3.3.证书链 2.4.HTTPS 1. 概述 本篇主要是讲解讲一些安全相关的基本知识(如加密、签名、证书等)&…...

Dexie.js内存管理技巧:在大型数据集操作中避免浏览器崩溃

Dexie.js 内存管理技巧:避免浏览器崩溃 在使用 Dexie.js 操作 大型数据集 时,如果不注意内存管理,可能会导致浏览器内存溢出(OOM,Out of Memory)或崩溃。因此,以下 内存管理技巧 可用于优化性能…...

vscode项目依赖问题

必读 一定要将前端下拉的项目备份一下,很容易运行导致依赖报错,重新下载 命令 使用幽灵分解器安装 pnpm install 替代 npm install 设置淘宝NPM镜像源 yarn config set registry https://registry.npmmirror.com 查看目前依赖包的版本 npm list ant-d…...

LLMs之RAG:《EdgeRAG: Online-Indexed RAG for Edge Devices》翻译与解读

LLMs之RAG:《EdgeRAG: Online-Indexed RAG for Edge Devices》翻译与解读 导读:这篇论文针对在资源受限的边缘设备上部署检索增强生成 (RAG) 系统的挑战,提出了一种名为 EdgeRAG 的高效方法。EdgeRAG 通过巧妙地结合预计算、在线生成和缓存策…...

宇泰串口卡驱动在Ubuntu22.04编译、安装汇总

从官网下载驱动官网地址 上传到Ubuntu, 目录结构如下: 驱动源代码: 驱动代码是基于开源项目编译来的 编译路径不能有中文路径,否则可能有类似错误 源码是基于Linux2.3内核编译,我当前是6.8.0-51,数据结构有升级,需要调…...

python管理工具:conda部署+使用

python管理工具:conda部署使用 一、安装部署 1、 下载 - 官网下载: https://repo.anaconda.com/archive/index.html - wget方式: wget -c https://repo.anaconda.com/archive/Anaconda3-2023.03-1-Linux-x86_64.sh2、 安装 在conda文件的…...

(三)html2canvas将HTML 转为图片并实现下载

将 HTML 转为图片并实现下载,通常可以使用一个叫做 html2canvas 的 JavaScript 库。html2canvas 能够将 HTML 元素及其样式渲染成一个画布 (Canvas),然后将该画布转换为图片格式(如 PNG 或 JPEG),最终提供下载功能。 …...

安装Docker流程

1.卸载旧版 首先如果系统中已经存在旧的Docker,则先卸载: yum remove docker \docker-client \docker-client-latest \docker-common \docker-latest \docker-latest-logrotate \docker-logrotate \docker-engine 2.配置Docker的yum库 首先要安装一个…...

flutter 使用google_mlkit_image_labeling做图片识别

在AI横行的如今,相信大家或多或少都做过跟AI接轨的需求了吧?今天我说的是关于图片识别的需求,flutter的专属图片识别插件google_mlkit_image_labeling。 google_mlkit_image_labeling它是Google旗下的Google Cloud Vision API中分支出来的一部…...

宝塔php7.4安装报错,无法安装,php8以上可以安装,以下的不行,gd库什么的都正常

宝塔的依赖问题导致的问题,最后手动挂载后才解决。。。废了三天三夜终于搞好了。。。。无语~ 建议:不要一直升级宝塔版本,升级前备份或者开服务商的实例镜像,方便恢复,不然,可就GG了&#xff5…...

python中的RPA->playwright自动化录制脚本实战案例笔记

playwright录制功能使用绕过登录操作 1、首先安装playwright pip install playwright2、 安装支持的浏览器 playwright install # 安装支持的浏览器:cr, chromium, ff, firefox, wk 和 webkit3、接着在自己的项目下运行录制命令: playwright codegen…...

Python在DevOps中的应用:自动化CI/CD管道的实现

《Python OpenCV从菜鸟到高手》带你进入图像处理与计算机视觉的大门! 解锁Python编程的无限可能:《奇妙的Python》带你漫游代码世界 在现代软件开发中,DevOps理念的引入极大地提升了开发与运维的协作效率,而持续集成&#xff08…...

Centos 离线安装杀毒软件

离线部署实现: 1、去官网下载对应的软件包,centos就下载 .rpm软件包。https://www.clamav.net/downloads2、将下载的软件包上传到服务器后使用rpm命令进行安装,软件包里面已经将相关依赖这些打包好了,直接安装就行。 rpm -ivh --…...

TiDB使用过程中需要注意的坑点:避免踩雷

TiDB使用过程中需要注意的坑点:避免踩雷 TiDB作为一个分布式数据库,虽然在许多场景下表现出色,但在使用过程中也有一些“坑”需要开发者特别注意。尤其是在生产环境中,踩雷可能会导致性能问题,甚至系统宕机。今天&…...

Mysql--实战篇--大数据量表的分页优化(自增长主键,子查询主键主查询全部,查询条件加索引,覆盖索引等)

当Mysql数据表存储大量数据时(百万级别数据),分页查询的性能问题是一个常见的挑战。特别是当使用LIMIT和OFFSET时,随着OFFSET的增加,查询性能会显著下降。原因在于MySQL需要扫描并跳过前面的行,这会导致I/O…...

Datawhale组队学习笔记task1——leetcode面试题

文章目录 写在前面刷题流程刷题技巧 Day1题目1、0003.无重复字符的最长子串解答:2.00004 寻找两个正序数组的中位数解答:3.0005.最长回文子串解答4.0008.字符串转换整数解答: Day2题目1.0151.反转字符串中的单词解答2.0043.字符串相乘解答3.0…...

【快速入门 LVGL】-- 1、STM32 工程移植 LVGL

目录 一、LVGL 简述 二、复制一个STM32工程 三、下载 LVGL 四、裁剪 源文件 五、工程添加 LVGL 文件 六、注册 显示 七、注册 触摸屏 八、LVGL 心跳、任务刷新 九、开跑 LVGL 十、控件的事件添加、响应处理 十 一、几个好玩小事情 十 二、显示中文 ~~ 约定 ~~ 在…...

Mac使用-快速开始总结(持续更新)

目录 Mac使用-快速开始总结常用快捷键 Mac使用-快速开始总结 第一次使用mac,发现很多细节上和windows不一样,以下是自己遇到的常用总结,帮助自己快速熟悉mac的使用~ 常用快捷键 复制、粘贴 快捷键? 复制:…...

Kubernetes (K8s) 入门指南

Kubernetes (K8s) 入门指南 什么是Kubernetes? Kubernetes,通常简称为 K8s(因为从 “K” 到 “s” 之间有八个字符),是一个开源的容器编排平台,用于自动化部署、扩展和管理容器化应用程序。它最初由谷歌设…...

归纳webpack

常用配置项 const HtmlWebpackPlugin require(html-webpack-plugin); // 通常用于生成HTML const MiniCssExtractPlugin require(mini-css-extract-plugin);// 用于分离CSS const cssMinimizerWebpackPlugin require("css-minimizer-webpack-plugin"); // 用于压…...

Web APP 阶段性综述

Web APP 阶段性综述 当前,Web APP 主要应用于电脑端,常被用于部署数据分析、机器学习及深度学习等高算力需求的任务。在医学与生物信息学领域,Web APP 扮演着重要角色。在生物信息学领域,诸多工具以 Web APP 的形式呈现&#xff…...

SpringBoot之OriginTrackedPropertiesLoader类源码学习

源码解析 /*** 作用是从给定的资源(如文件或输入流)中加载 .properties 文件,* 并将属性键值对转换为带有来源信息(origin)的 OriginTrackedValue 对象。*/ public class OriginTrackedPropertiesLoader {private fin…...

Flask学习入门笔记

Flask学习入门笔记 前言1. 安装Flask2. 创建一个简单的Flask应用3. 路由与视图函数3.1 基本路由3.2 动态路由3.3 HTTP方法 4. 请求与响应4.1 获取请求数据4.2 返回响应 5. 模板渲染5.1 基本模板渲染5.2 模板继承 6. 静态文件6.1 静态文件的目录结构6.2 在模板中引用静态文件6.2…...

List 接口的实现类

在 Java 中,List 是一个非常常用的接口,提供了有序、可重复的元素集合。List 接口有多个实现类,每个实现类都有其特定的特性和适用场景。以下是 Java 中主要实现了 List 接口的类及其详细介绍。 1. 常见的 List 实现类 1.1 ArrayList 简介&…...

SpringCloud-基于Docker和Docker-Compose的项目部署

一、初始化环境 1. 卸载旧版本 首先,卸载可能已存在的旧版本 Docker。如果您不确定是否安装过,可以直接执行以下命令: sudo yum remove docker \docker-client \docker-client-latest \docker-common \docker-latest \docker-latest-logro…...

【人工智能】Python中的自动化机器学习(AutoML):如何使用TPOT优化模型选择

《Python OpenCV从菜鸟到高手》带你进入图像处理与计算机视觉的大门! 解锁Python编程的无限可能:《奇妙的Python》带你漫游代码世界 随着机器学习在各行业的广泛应用,模型选择和优化成为了数据科学家面临的主要挑战之一。自动化机器学习&am…...

Kafka 超级简述

Kafka 就是一个 分布式的消息系统,它帮助不同的系统和应用之间传递信息。可以把它想象成一个超级高效的 “邮局”: 生产者(Producer) 就是把信息(消息)送到这个 “邮局” 的人。消费者(Consume…...

tomcat项目运行后报500

HTTP状态 500 - 内部服务器错误 类型 异常报告消息 实例化Servlet类[com.mdy.servlet_02.LifeDemoServlet]异常描述 服务器遇到一个意外的情况,阻止它完成请求。例外情况jakarta.servlet.ServletException: 实例化Servlet类[com.mdy.servlet_02.LifeDemoServlet]异常…...

Chapter1:初见C#

参考书籍:《C#边做边学》; 1.初见C# 1.1 C#简介 C # {\rm C\#} C#编写了许多完成常用功能的程序放在系统中,把系统中包含的内容按功能分成多个部分,每部分放在一个命名空间中,导入命名空间语法格式如下: /…...

SQL-leetcode—620. 有趣的电影

620. 有趣的电影 表:cinema ------------------------ | Column Name | Type | ------------------------ | id | int | | movie | varchar | | description | varchar | | rating | float | ------------------------ id 是该表的主键(具有唯一值的列)。 每行包含…...

《鸿蒙Next平台:决策树面对噪声数据的鲁棒性逆袭》

在机器学习领域,决策树是一种强大的模型,但训练数据中的噪声往往会影响其性能和鲁棒性。在鸿蒙Next平台上,我们可以采用多种策略来增强决策树模型在面对噪声数据时的鲁棒性。 数据预处理层面 数据清洗:利用鸿蒙Next平台的数据处理…...

minio https配置

如果使用了官网的教程 使用minio-user作为启动用户 准备好:文件名要定死,因为minio只认识key和crt文件 将xxxxx.key重命名为private.key 将xxxxx.pem重命名为public.crt 将这两个文件放到/home/minio-user/.minio/certs/ 目录下 chown -r minio…...

Windows重装后NI板卡LabVIEW恢复正常

在重新安装Windows系统后,NI(National Instruments)板卡能够恢复正常工作,通常是由于操作系统的重新配置解决了之前存在的硬件驱动、兼容性或配置问题。操作系统重装后,系统重新加载驱动程序、清理了潜在的冲突或损坏的…...

Spring Initializr创建springboot项目 “java: 错误: 无效的源发行版:19”

我用的1.8的jdk,排查发现这是jdk和springboot版本冲突导致的。 1、File->Project Structure->Module->source和dependancies改成相应的版本 2、File->Setting->Build,Execution,Deployment->Compiler->Java Compiler->target bytecode ver…...

Vue computed属性原理及其惰性求值特点

1,computed属性 在 Vue.js 中, computed 属性是 Vue 响应式系统的一个核心特性,它允许开发者声明式地描述一个依赖其他响应式属性的计算值。 computed 属性是基于它们的依赖进行缓存的,只有当依赖发生变化时,它们才会…...

关于在 Kotlin DSL 中,ndk 的配置方式

在 Kotlin DSL 中,ndk 的配置方式有所不同,取决于 Android Gradle 插件版本。ndk { abiFilters(…) } 在 Kotlin DSL 中实际上是 externalNativeBuild 的一部分,需要通过正确的上下文调用。 错误代码: ndk {abiFilters("ar…...

机器学习(一)

一, Supervised Machine Learning (监督机器学习) 1,定义:学习X到Y或输入到输出的映射的算法,学习算法从正确答案中学习。即教机器 如何做事情(数据集学习算法模型),根据已有的数据集,知道输入和输出结果 之间的关系,并根据这…...

得物App再迎开放日,全流程体验正品查验鉴别

近日,得物App超级品质保障中心再度迎来了开放日活动。近60位得物App的用户与粉丝齐聚超级品质保障中心,全流程体验正品查验鉴别。开放日当天,参与者有机会近距离观察得物App的商品质检区、鉴别区、收发流转区、实验室和正品库等关键功能区&am…...

《leetcode-runner》【图解】【源码】如何手搓一个debug调试器——表达式计算

前文: 《leetcode-runner》如何手搓一个debug调试器——引言 《leetcode-runner》如何手搓一个debug调试器——架构 《leetcode-runner》如何手搓一个debug调试器——指令系统 《leetcode-runner》【图解】如何手搓一个debug调试器——调试程序【JDI开发】【万字详解…...

Flink概述

一、Flink是什么 二、Flink特点 三、Flink vs SparkStreaming 表 Flink 和 Streaming对比 Flink Streaming 计算模型 流计算 微批处理 时间语义 事件时间、处理时间 处理时间 窗口 多、灵活 少、不灵活(窗口必须是批次的整数倍) 状态 有 …...

【Linux】信号

目录 一、信号的概念二、信号的产生2.1 通过键盘进行信号的产生2.2 通过系统调用进行信号的产生2.2.1 kill函数2.2.2 raise函数2.2.3 abort函数 2.3 通过异常的方式进行信号的产生2.4 通过软件条件的方式进行信号的产生2.4.1 关闭管道读端2.4.2 alarm函数 2.5 Core Dump&#x…...

【漏洞分析】DDOS攻防分析

0x00 UDP攻击实例 2013年12月30日,网游界发生了一起“追杀”事件。事件的主角是PhantmL0rd(这名字一看就是个玩家)和黑客组织DERP Trolling。 PhantomL0rd,人称“鬼王”,本名James Varga,某专业游戏小组的…...

【js进阶】设计模式之单例模式的几种声明方式

单例模式&#xff0c;简言之就是一个类无论实例化多少次&#xff0c;最终都是同一个对象 原生js的几个辅助方式的实现 手写forEch,map,filter Array.prototype.MyForEach function (callback) {for (let i 0; i < this.length; i) {callback(this[i], i, this);} };con…...

【VUE】计算属性+动态样式方法封装

【VUE】父子组件联动实现动态样式控制 【VUE】页面跳转实现动态样式控制 在utils下创建文件夹styleController 编写通用的方法 /*** 样式控制* 本文件主要提供一些动态控制样式的方法*//*** 控制表格表头中的 某些列 是否显示星号** param showStarActions boolean 当值为True时…...

Mac玩Steam游戏秘籍!

Mac玩Steam游戏秘籍&#xff01; 大家好&#xff01;最近有不少朋友在用MacBook玩Steam游戏时遇到不支持mac的问题。别担心&#xff0c;我来教你如何用第三方工具Crossover来畅玩这些不支持的游戏&#xff0c;简单又实用&#xff01; 第一步&#xff1a;下载Crossover 首先&…...

【后端面试总结】tls中.crt和.key的关系

tls中.crt和.key的关系 引言 在现代网络通信中&#xff0c;特别是基于SSL/TLS协议的加密通信中&#xff0c;.crt和.key文件扮演着至关重要的角色。这两个文件分别代表了数字证书和私钥&#xff0c;是确保通信双方身份认证和数据传输安全性的基石。本文旨在深入探讨TLS中.crt和…...

【Axure】配色库

配色库是一个专为设计师和创意工作者打造的在线资源平台&#xff0c;旨在提供丰富的色彩解决方案&#xff0c;帮助用户轻松找到或创造美观和谐的色彩搭配。其中&#xff0c;一个典型的配色库包含了以下几个核心元素&#xff1a; 渐变色&#xff1a;提供多样化的渐变色方案&…...

PL/SQL语言的语法糖

PL/SQL语言的语法糖 引言 PL/SQL&#xff08;Procedural Language/Structured Query Language&#xff09;是Oracle公司为其数据库管理系统&#xff08;DBMS&#xff09;设计的一种过程化语言。作为一种扩展SQL的语言&#xff0c;PL/SQL不仅支持数据的查询和操作&#xff0c;…...

Pytorch|YOLO

&#x1f368; 本文为&#x1f517;365天深度学习训练营中的学习记录博客&#x1f356; 原作者&#xff1a;K同学啊 一、 前期准备 1. 设置GPU 如果设备上支持GPU就使用GPU,否则使用CPU import torch import torch.nn as nn import torchvision.transforms as transforms im…...

doc、pdf转markdown

国外的一个网站可以&#xff1a; Convert A File Word, PDF, JPG Online 这个网站免费的&#xff0c;算是非常厚道了&#xff0c;但是大文件上传多了之后会扛不住 国内的一个网站也不错&#xff1a; TextIn-AI智能文档处理-图像处理技术-大模型加速器-在线免费体验 https://…...