量子安全与经典密码学:一些现实方面的讨论
量子安全与经典密码学
- 背景:量子安全与经典密码学
- 量子计算对传统密码学的威胁
- 安全性分析
- 经典密码学的数学复杂性假设
- **量子密码学的物理不可克隆性假设**
- **性能与实现难度**
- 后量子算法在经典计算机上的运行效率
- **量子通信设备的技术要求与成本**
- **可扩展性与适用场景**
- **各领域对不同密码学技术的需求分析**
- 一些研究热点与应用
- 量子密钥分发的落地应用
- 量子安全芯片与硬件加速
背景:量子安全与经典密码学
信息安全是现代社会正常运行的重要保障。随着信息技术的广泛应用,各类通信网络、云计算、物联网和区块链等技术成为社会基础设施的重要组成部分。金融交易、电子政务、国防系统甚至个人隐私保护等关键领域,都依赖于加密技术来维护数据的机密性、完整性和可用性。然而,这些领域也因数字化程度的提高而面临愈发复杂的安全挑战。
根据国际信息系统审计与控制协会(ISACA)的研究,全球数据泄露和网络攻击的规模正在以几何倍数增长,仅2023年就有超过10亿条数据记录遭到泄露。这种现象不仅导致巨大的经济损失,还会危及国家安全。例如,2017年的“永恒之蓝”勒索病毒事件利用了系统漏洞,在短时间内席卷全球,显示出现代社会对于信息安全的依赖以及漏洞的严重性。
量子计算对传统密码学的威胁
量子计算对传统密码学的威胁
密码学是信息安全的核心,而传统密码学主要依赖于数学问题的计算复杂性来确保安全性。当前主流的密码系统包括:
- 对称加密(如AES):其安全性依赖于密钥空间的大小,穷举搜索复杂度为 O ( 2 n ) O(2^{n}) O(2n) ,n是密钥长度。
- 非对称加密(如RSA、ECC):其安全性基于大整数分解问题和椭圆曲线离散对数问题,破解复杂度为指数级增长。
- 哈希函数(如SHA系列):设计目的是防止碰撞攻击。
然而,量子计算的出现正在动摇这些基础假设。量子计算机通过叠加态和量子纠缠能够实现并行计算,其计算能力随着量子比特(qubit)数量的增加呈指数增长。具体威胁包括:
- Shor算法:该算法能够在多项式时间内分解大整数和计算离散对数,从而直接威胁基于这些问题的RSA、ECC等加密算法的安全性。例如,目前安全的2048位RSA加密,在足够多的量子比特支持下,可被Shor算法高效破解。
- Grover算法:该算法可以将对称加密算法(如AES)的穷举搜索时间缩短至平方根复杂度 O ( 2 n / 2 ) O(2^{n/2}) O(2n/2) ,这意味着传统的128位AES安全性相当于仅64位密钥。
根据谷歌、IBM等公司的量子计算研究进展,当前量子计算机的实际性能尚不足以威胁主流加密系统,但随着量子比特数和纠错能力的提升,这一威胁将在未来十至二十年间变为现实。
面对量子计算带来的挑战,量子安全(Quantum Security)的概念应运而生,其目标是开发能够在量子计算时代继续确保安全的密码学方案。这一领域主要包括以下两大方向:
后量子密码学(Post-Quantum Cryptography):基于经典计算机可实现的数学难题构建的新型加密方法,主要包括:
- 基于格的密码学(Lattice-Based Cryptography):利用格理论中的学习与错误问题(Learning with Errors, LWE)设计安全的加密算法,如Kyber和Dilithium。
- 基于编码理论的密码学(Code-Based Cryptography):以McEliece加密系统为代表,利用难解的解码问题构建安全模型。
- 基于多变量多项式的密码学(Multivariate Polynomial Cryptography):通过多变量方程组求解的难度保证安全性。
这些方法的核心是寻找量子计算无法高效破解的数学问题。美国国家标准与技术研究院(NIST)正在推动后量子密码学算法的标准化进程。
量子密钥分发(Quantum Key Distribution, QKD):利用量子力学基本原理(如量子叠加和不可克隆定理)实现安全的密钥分发。经典协议如BB84通过检测量子态的干扰,实现通信双方的绝对安全密钥共享。然而,QKD面临的挑战主要在于设备噪声、信道衰减和大规模部署的高成本。
量子安全是信息技术发展的必然趋势,其意义不仅限于技术层面,更对国家安全和国际竞争格局产生深远影响。各国正在大力投资量子技术与量子安全,抢占未来信息社会的战略高地。例如,中国、美国和欧盟分别在量子通信网络、后量子算法和量子计算芯片等领域取得显著进展。综合来看,量子安全的发展标志着信息安全领域从经典密码学向量子时代的过渡。对于研究者和从业者而言,深入理解量子安全的背景和重要性,将为推动这一领域的进步贡献力量。
安全性分析
经典密码学的数学复杂性假设
经典密码学依赖于数学问题的计算复杂性来保障安全性,其核心思想是确保破解密码的成本在可接受时间内无法承受。以下是一些主要的数学复杂性假设:
-
大整数分解问题(Integer Factorization Problem, IFP):
- RSA算法依赖于大整数分解的难度。给定一个由两个大素数相乘得到的数 N = p ⋅ q N = p \cdot q N=p⋅q,求出 p p p 和 q q q 需要指数级的时间。
- 安全性前提:没有比现有经典方法更高效的分解算法。
-
离散对数问题(Discrete Logarithm Problem, DLP):
- DLP是Diffie-Hellman和ElGamal等算法的基础。在给定 g x m o d p g^x \mod p gxmodp 和 p p p,求 x x x 是极为复杂的。
- 安全性前提:指数时间是破解此问题的下界。
-
椭圆曲线离散对数问题(Elliptic Curve Discrete Logarithm Problem, ECDLP):
- ECC的安全性基于此问题,提供与DLP类似的复杂性,但使用更短的密钥。
这些数学假设在经典计算框架下被认为是稳固的。然而,量子计算的出现(如Shor算法)能以多项式时间破解这些问题,暴露了经典密码学的潜在脆弱性。
量子密码学的物理不可克隆性假设
量子密码学的安全性基于量子力学的基本原理,尤其是不可克隆性定理(No-Cloning Theorem)和量子测量的不可逆性:
-
不可克隆性定理:
- 量子态无法被精确复制。对于任意未知的量子态 ∣ ψ ⟩ |\psi\rangle ∣ψ⟩,不存在操作能够生成两个完全相同的 ∣ ψ ⟩ |\psi\rangle ∣ψ⟩。
-
测量引起的状态塌缩:
- 一旦量子态被测量,其状态会立即坍缩到测量结果所对应的基态,无法恢复到测量前的叠加态。
- 在量子密钥分发(如BB84协议)中,窃听者的测量行为会被通信双方检测到。
量子密码学依赖于这些物理特性,使其在信息传输过程中提供理论上的无条件安全性。
性能与实现难度
后量子算法在经典计算机上的运行效率
后量子密码学主要研究在经典计算机上实现对抗量子计算威胁的加密方案。以下是一些关键算法及其性能特点:
-
基于格的密码学(Lattice-Based Cryptography):
- 算法如Kyber、Dilithium的效率较高,但密钥大小较大(通常为几千字节)。
- 在常规硬件上性能接近传统加密算法,但存储需求增加。
-
基于编码理论的密码学(Code-Based Cryptography):
- 典型算法如McEliece的公钥较大(可达数百KB到数MB),但解密速度非常快。
- 适合资源充裕的系统,但对嵌入式设备不友好。
-
基于多变量多项式的密码学(Multivariate Cryptography):
- 签名速度快,但密钥生成和验证效率较低。
整体来看,后量子算法通常需要牺牲部分运行效率和存储空间换取安全性,但它们的实现成本低于量子设备。
量子通信设备的技术要求与成本
量子密码学(如量子密钥分发,QKD)依赖于量子通信设备,其实现面临以下挑战和成本问题:
-
技术要求:
- 光子生成与检测:需要稳定的单光子源和高效探测器。
- 量子信道:通常使用光纤或自由空间通信,但光纤信道的距离受限于几十公里至几百公里。
- 量子纠缠生成与分发:需要复杂的光学器件和精密的光学对准系统。
-
成本分析:
- 硬件成本:当前QKD系统的硬件成本较高,包括单光子源、探测器和加密设备。
- 维护成本:需要精密的环境控制以减少噪声和误码率。
- 扩展成本:量子网络的构建需要量子中继器,但目前中继器技术尚未成熟。
尽管成本高昂,QKD已被用于高安全性场景,如金融通信和军事通信。例如,中国的“京沪干线”量子通信网络展示了大规模QKD系统的可行性,但也凸显了其部署难度和高投入。
可扩展性与适用场景
各领域对不同密码学技术的需求分析
不同领域对密码学技术的需求因其应用特点而异,量子密码学和后量子密码学在以下场景中具有显著差异:
-
金融领域:
- 需求:高吞吐量、高可靠性和低延迟的加密技术。
- 适用技术:后量子算法更适合,因为金融系统需要兼容现有基础设施,而量子密码学的硬件成本和部署复杂性较高。
-
国防与军事通信:
- 需求:绝对安全的通信链路。
- 适用技术:量子密钥分发(QKD)因其无条件安全性,在军事通信中具有优势,适合高敏感性场景。
-
物联网与边缘设备:
- 需求:低功耗、低存储需求的加密方案。
- 适用技术:后量子算法更为实用,特别是轻量级的格密码或基于编码的算法。
-
云计算与数据存储:
- 需求:长时间的数据保护(数十年甚至更久)。
- 适用技术:后量子算法和QKD的结合是最优选择。例如,QKD用于密钥分发,而后量子算法用于数据存储加密。
-
学术研究与技术实验:
- 需求:探索前沿技术,推动量子密码学和后量子密码学的发展。
- 适用技术:量子通信和后量子算法的结合,为学术研究提供测试和优化平台。
经典密码学的数学复杂性假设在经典计算框架下是安全的,但面临量子计算的潜在威胁。量子密码学则以物理不可克隆性为基础,提供无条件安全,但技术门槛和成本较高。在性能和可扩展性方面,后量子算法在经典计算机上表现良好,适合广泛部署,而量子密码学更适用于高敏感性和高价值的通信场景。随着技术的发展,不同密码学技术的互补和协同将成为信息安全领域的重要趋势。
一些研究热点与应用
量子密钥分发的落地应用
商业化案例:金融、军事通信等领域
量子密钥分发(Quantum Key Distribution, QKD)通过利用量子力学原理实现无条件安全的密钥传输,已在多个高安全性领域实现商业化应用:
金融领域:瑞士银行业率先部署QKD,用于高安全性跨行交易。中国建设银行与中国科学技术大学合作,构建基于量子通信的加密系统,用于客户数据保护和交易加密。
军事通信:中国的“京沪干线”量子通信网络已用于军事通信,确保指挥与情报传输的绝对安全。欧洲的“Quantum Flagship”计划正在研究量子通信技术在军事中的应用。
跨国通信:韩国SK电讯与瑞士ID Quantique合作,开发基于QKD的量子通信网络,用于国际商业合同的加密。
- 实现中的技术瓶颈
尽管QKD在高敏感性领域展示了强大潜力,但其广泛应用仍面临以下技术瓶颈。
距离限制:光纤信道中,光子的传输损耗限制了QKD的有效距离(通常为100-200公里)。量子中继器尚未成熟,难以实现长距离传输。
设备稳定性:单光子源和探测器易受环境噪声影响。光学器件的高精度调校需求增加了设备维护成本。
系统成本:当前QKD系统的成本极高,难以与传统加密方案竞争。扩展至大规模网络需要巨额投入。
标准化与互操作性:不同厂商设备的兼容性和标准化问题仍需解决。
量子安全芯片与硬件加速
面向QKD的量子硬件设计较多,为了提升QKD的效率与稳定性,研究者和企业正积极开发专用量子硬件,包括:
- 单光子源:基于量子点或非线性晶体的单光子源技术,用于精确产生单光子。最新研究表明,基于叠层量子点的单光子源在生成率和稳定性上优于传统方法。
- 量子探测器:超导纳米线单光子探测器(SNSPD)以其高探测效率和低噪声水平成为主流选择。研究正致力于将探测器小型化,以便集成到量子通信设备中。
- 量子中继器:中继器通过量子纠缠的扩展和纠错延长传输距离,但技术尚未成熟。
后量子算法的硬件实现优化也是一个课题,硬件加速已成为提升算法效率的关键研究方向:
- FPGA与ASIC实现:利用现场可编程门阵列(FPGA)和专用集成电路(ASIC)加速算法执行。Kyber和Dilithium的硬件实现表明,通过并行化优化,可以显著提高加密速度,同时减少能耗。
- 轻量化设计:针对嵌入式系统的优化,研究者开发了低功耗的后量子算法硬件实现。基于格的密码学由于矩阵运算较多,在硬件上表现出显著优势。
- 量子硬件协同:一些实验性系统正在探索量子计算硬件与经典后量子算法的协同优化,以在混合场景中提供更强的安全性。
当前,后量子密码学和量子密钥分发正在从理论向实践迈进。NIST的标准化竞赛为后量子算法奠定了全球基础,而QKD已在金融和军事领域实现初步商业化,但技术瓶颈和成本问题亟待解决。同时,量子安全芯片和硬件加速的研究将进一步推动量子安全技术的实际应用,为信息安全提供更加稳固的基础。
相关文章:
量子安全与经典密码学:一些现实方面的讨论
量子安全与经典密码学 背景:量子安全与经典密码学量子计算对传统密码学的威胁 安全性分析经典密码学的数学复杂性假设**量子密码学的物理不可克隆性假设** **性能与实现难度**后量子算法在经典计算机上的运行效率**量子通信设备的技术要求与成本** **可扩展性与适用…...
WordCloud参数的用法:
-------------词云图集合------------- 用WordcloudPyQt5写个词云图生成器1.0 WordCloud去掉停用词(fit_wordsgenerate)的2种用法 通过词频来绘制词云图(jiebaWordCloud) Python教程95:去掉停用词词频统计jieba.toke…...
数据库(总结自小林coding)|索引失效的场景、慢查询、原因及如何优化?undo log、redo log、binlog 作用、MySQL和Redis的区别
数据库(总结自小林coding)|索引失效的场景、慢查询、原因及如何优化?undo log、redo log、binlog 作用、MySQL和Redis的区别 说一下索引失效的场景?什么是慢查询?原因是什么?可以怎么优化?undo …...
(计算机组成原理)期末复习
第一章 计算机的基本组成:硬件软件(程序)计算机系统 软件有系统软件(系统管理工具),应用软件 计算机硬件:包括主机和外设,主机包括CPU和内存,***CPU由运算器和控制器所组…...
Linux下一次性关闭多个同名进程
要一次性关闭多个同名的 Python 进程,例如: 你可以使用以下几种方法。在执行这些操作之前,请务必确认这些进程确实是你希望终止的,以避免意外关闭其他重要的进程。 方法一:使用 pkill 命令 pkill 是一个用于根据名称…...
Android显示系统(01)- 架构分析
一、前言: Android是基于Linux的,而显示设备的驱动也都是和Linux普通设备一样去管理,也就是说归根结底还是要按照Linux的方式组织数据送给LCD,因此,我们理解Android设计的这一套复杂的显示系统时候,一定要…...
Bean的生命周期详解保姆级教程,结合spring boot和spring.xml两种方式讲解,5/7/10大小阶段详细分析
文章目录 Spring Bean的生命周期一、为什么知道 Bean 的生命周期?二、生命周期大致了解三、详细分析生命周期3.1 ① 初步划分为 5 步:3.1.1 spring 框架中怎么理解3.1.2 spring boot 项目中怎么理解 3.2 ② 细分 5 步为 7 步:3.2.1 spring 框…...
2024年11月26日Github流行趋势
项目名称:v2rayN 项目维护者:2dust yfdyh000 CGQAQ ShiinaRinne Lemonawa 项目介绍:一个支持Xray核心及其他功能的Windows和Linux图形用户界面客户端。 项目star数:70,383 项目fork数:11,602 项目名称:fre…...
分页/列表分页
分页和单列表差不多,只是多加了点数据 一 : 实体类 1. 原生实体类 和 2.vo实体类 vo实体类包含原生实体类的所有字段 再新字段 原生(数据库里的字段) vo(多条件查询字段 ,分页字段) 分页字段 : private Integer pageNum1 //起始页 private Integer pageSize 4 //显示页数…...
微信小程序学习指南从入门到精通
🗽微信小程序学习指南从入门到精通🗽 🔝微信小程序学习指南从入门到精通🔝✍前言✍💻微信小程序学习指南前言💻一、🚀文章列表🚀二、🔯教程文章的好处🔯1. ✅…...
STM32外设应用
STM32系列单片机是由意法半导体(STMicroelectronics)推出的一款基于ARM Cortex-M内核的32位微控制器。STM32以其高性能、低功耗、丰富的外设接口以及灵活的应用场景,广泛应用于嵌入式系统中。STM32的外设功能非常强大,几乎涵盖了大多数常见嵌入式开发所需的硬件接口。本篇文…...
Vue进阶面试题目(一)
Vue 自定义事件中,父组件如何接收子组件传递的多个参数? 在 Vue 中,子组件可以通过 $emit 方法触发自定义事件,并传递参数。父组件可以通过监听这个事件来接收参数。如果子组件需要传递多个参数,可以将这些参数作为数组或对象传…...
人工智能——大语言模型
5. 大语言模型 5.1. 语言模型历史 20世纪90年代以前的语言模型都是基于语法分析这种方法,效果一直不佳。到了20世纪90年代,采用统计学方法分析语言,取得了重大进展。但是在庞大而复杂的语言信息上,基于传统统计的因为计算量巨大…...
每天五分钟机器学习:支持向量机数学基础之超平面分离定理
本文重点 超平面分离定理(Separating Hyperplane Theorem)是数学和机器学习领域中的一个重要概念,特别是在凸集理论和最优化理论中有着广泛的应用。该定理表明,在特定的条件下,两个不相交的凸集总可以用一个超平面进行分离。 定义与表述 超平面分离定理(Separating Hy…...
树链剖分(重链剖分)
树链剖分的核心思想就是将一棵树剖分成一条一条的链 因为树不好处理 但链比较好处理 为了学会它 我们先要学会树上dfs(深度优先搜索) 然后就没了(雾) Because 树链剖分需要用到两个dfs 哦对了 我们还要了解以下的知识点 1.子…...
Spring Boot 开发环境搭建及示例应用
文章目录 1. 准备开发工具安装 JDK安装 IDE安装 Maven 2. 创建 Spring Boot 项目使用 Spring Initializr 创建项目导入项目到 IDE 3. 编写代码主类创建控制器创建实体类创建仓库接口创建服务类创建控制器 4. 配置文件5. 运行应用程序6. 测试应用程序7. 调试与优化8. 部署应用 1…...
网站布局编辑器前端开发:设计要点与关键考量
一、设计说明 (一)功能模块 可视化操作区域 这是用户进行网站布局设计的主要画布。通过拖放各种页面元素(如文本框、图片、按钮、导航栏等)到该区域,用户能够直观地构建网站页面的布局结构。支持对元素的实时缩放、旋…...
网络编程第一课
0voice第一课 https://github.com/0voice 今日学习:网络通信IO 网络通信的核心是通过系统提供的socket套接字实现的。socket和c语言中文件操作的本质类似,在c语言中,通过fopen、fclose、fread、fwrite实现了对文件的操作,socket…...
关于网络安全攻防知识
DNS 劫持 什么是DNS劫持? DNS劫持又叫域名劫持,(劫持了路由器或域名服务器等),篡改了域名的解析结果,使得指向该域名的IP指向IP,你想访问正经网站结果给你跳到一个不正经的网站,实现…...
途普科技企业知识中台完成华为昇思MindSpore技术认证
近日,北京途普科技有限公司(以下简称“途普科技”)作为华为昇腾大模型方向的应用软件伙伴,核心产品企业知识中台已成功与华为AI框架昇思MindSpore完成相互兼容性认证。这一成就标志着途普科技在AI领域与华为的合作进一步加深&…...
等保测评在云计算方面的应用讲解
等保测评(信息安全等级保护测评)在云计算方面的应用主要聚焦于如何满足等级保护相关要求,并确保云计算平台及其上运行的业务系统的安全性。以下是主要内容的讲解: 1. 云计算中的等保测评概述 等保测评是在我国网络安全等级保护制…...
【PTA】【数据库】【SQL命令】编程题2
数据库SQL命令测试题2 测试题目录 10-1 查询“李琳”老师所授课程的课程名称10-2 查询成绩比所有课程的平均成绩高的学生的学号及成绩10-3 创建带表达式的视图StuView10-4 从视图PerView中查询数据10-5 查询工资高于在“HR”部门工作的所有员工的工资的员工信息10-6 查询选修的…...
flask请求头回显的学习和探究如何进行错误页面污染回显
请求头 首先我们要了解一些flask的请求和响应是利用了什么。 flask的请求和响应主要利用了werkzeug,那么我们就要先了解一下什么是werkzeug,其结构又是什么。 werkzeug是一个基于python开发的一个web工具包,其是flask的核心组件之一。其功能…...
Node.js的url模块与querystring模块
新书速览|Vue.jsNode.js全栈开发实战-CSDN博客 《Vue.jsNode.js全栈开发实战(第2版)(Web前端技术丛书)》(王金柱)【摘要 书评 试读】- 京东图书 (jd.com) 4.3.1 http模块——创建HTTP服务器、客户端 要使用http模块࿰…...
Spring框架使用xml方式配置ThreadPoolTaskExecutor线程池,并且自定义线程工厂
一、自定义线程工厂 自定义线程工厂需要实现java.util.concurrent.ThreadFactory接口,重写newThread方法。 示例代码: package com.xiaobai.thread;import org.apache.log4j.Logger;import java.util.concurrent.ThreadFactory; import java.util.conc…...
自动化的内存管理技术之垃圾回收机制-JavaScript引用数据内存回收机制
垃圾回收机制(Garbage Collection, GC) 是一种自动化的内存管理技术,用于回收程序中不再使用的内存空间,避免内存泄漏。JavaScript(尤其是 V8 引擎)使用了一些经典的垃圾回收算法,如 标记-清除 …...
如何使用MySQL实现多租户架构:设计与实现全解析
项目背景 在现代SaaS(软件即服务)应用中,多租户架构是一种常见的设计模式。多租户架构能够让多个客户(租户)共享同一个应用实例和数据库资源,而不会相互干扰。在实际的业务场景中,采用多租户架…...
Flink学习连载文章8--时间语义
Time的分类 (时间语义) EventTime:事件(数据)时间,是事件/数据真真正正发生时/产生时的时间 IngestionTime:摄入时间,是事件/数据到达流处理系统的时间 ProcessingTime:处理时间,是事件/数据被处理/计算时的系统的时间 EventTime的重要性 假设,你正在去往地下停…...
jvm核心组件介绍
1. 类加载器(ClassLoader): • 想象它是一个快递员,负责把Java类(.class文件)这个“包裹”从磁盘这个“发货地”送到JVM内部这个“目的地”。类加载器确保每个类只被加载一次,并维护一个类的层级…...
【WEB开发.js】getElementById :通过元素id属性获取HTML元素
getElementById 是 JavaScript 中常用的一个 DOM 方法,用于通过元素的 id 属性获取文档中对应的 HTML 元素。这个方法返回的是一个包含该元素的引用,如果没有找到指定的元素,则返回 null。 语法: document.getElementById(id);i…...
java基础知识(Math类)
引入:Math 类包含用于执行基本数学运算的方法,如初等指数、对数、平方根 import java.util.Math 1.abs绝对值 int abs Math.abs(-9); 2.pow求幂 double pow Math.pow(2,4); 3.向上取整 double ceil Math.ceil(3.9);//ceil 4 4.向下取整 dou…...
图像分割——区域增长
一 区域增长 图像灰度阈值分割技术都没有考虑到图像像素空间的连通性。区域增长法则正好相反,顾及像素的连接性. 方法:1)选择一个或一组种子; 2)选择特征及相似性判决准则; 3)从该种子开始向外生长&#x…...
JavaScript中的构造函数(工厂函数)以及部分包装类
创建对象 1.1 工厂函数 我们来思考一个问题:如果需要在开发中创建一系列的相似对象,我们应该如何操作呢 比如下面的例子 游戏中创建一系列的英雄(英雄具备的特性是相似的,比如都有名字,技能,价格ÿ…...
三维地形图计算软件(三)-原基于PYQT5+pyqtgraph旧代码
最先入手设计三维地形图及平基挖填方计算软件时,地形图的显示方案是:三维视图基于pyqtgraph.opengl显示和二维视图基于pyqtgraph的PlotWidget来显示地形地貌,作到一半时就发现,地形点过多时,将会造成系统卡顿(加载时主…...
MATLAB 中有关figure图表绘制函数设计(论文中常用)
在撰写论文时,使用 MATLAB 导出的图像常常因大小和格式不统一,导致投稿时编辑部频繁退稿,要求修改和调整。这不仅浪费时间,也增加了工作量。为了减少这些麻烦,可以在 MATLAB 中导出图像时提前设置好图表的大小、格式和…...
Android adb shell dumpsys audio 信息查看分析详解
Android adb shell dumpsys audio 信息查看分析详解 一、前言 Android 如果要分析当前设备的声音通道相关日志, 仅仅看AudioService的日志是看不到啥日志的,但是看整个audio关键字的日志又太多太乱了, 所以可以看一下系统提供的一个调试指令…...
网络工具-nc(Netcat)
介绍 nc(Netcat)是一个功能强大的网络工具,通常被称为“网络中的瑞士军刀”。它能够进行网络调试、分析以及简单的服务器和客户端操作。nc 支持多种协议,尤其是 TCP 和 UDP,广泛用于网络诊断、端口扫描、数据传输等任…...
8:00面试,8:06就出来了,问的问题有点变态。。。
在职业生涯的旅途中,我们总会遇到各种意想不到的挑战和转折。我从一家小公司跳槽至另一家公司,原以为能够迎接全新的工作环境和机遇,却未曾料到,等待我的是一场职场风暴。 新公司的加班文化让我倍感压力,虽然薪资诱人…...
【前端】ES6基础
1.开发工具 vscode地址 :https://code.visualstudio.com/download, 下载对应系统的版本windows一般都是64位的 安装可以自选目录,也可以使用默认目录 插件: 输入 Chinese,中文插件 安装: open in browser,直接右键文件…...
C语言中const char *字符进行切割实现
将127.0.0.1以“”“.”来进行切割,实现如下: const char * ip "127.0.0.1";char *test new char[100];strcpy(test, ip);const char *split ".";char *final;final strtok(test, split);while (final){printf("%s\n"…...
探索Python网络请求新纪元:httpx库的崛起
文章目录 **探索Python网络请求新纪元:httpx库的崛起**第一部分:背景介绍第二部分:httpx库是什么?第三部分:如何安装httpx库?第四部分:简单的库函数使用方法1. 发送GET请求2. 发送POST请求3. 超…...
25A物联网微型断路器 智慧空开1P 2P 3P 4P-安科瑞黄安南
微型断路器,作为现代电气系统中不可或缺的重要组件,在保障电路安全与稳定运行方面发挥着关键作用。从其工作原理来看,微型断路器通过感知电流的异常变化来迅速作出响应。当电路中的电流超过预设的安全阈值时,其内部的电磁感应装置…...
openjudge- 简单英文题【12:Maximum Product of Sequence】
题目 12:Maximum Product of Sequence 总时间限制: 1000ms 内存限制: 65536kB 描述 Find a sequence of M positive numbers with the maximum product, while the sum of them is N. 输入 Two positive integers M (M < 10) and N (N < 100). 输出 One line contains …...
网络安全风险评估
项目背景 随着信息化技术的快速发展,特别是面向社会、政府机构、企业等业务系统的投入使用,各组织机构对网络和信息系统安全防护都提出了新的要求。为满足安全需求,需对组织机构的网络和信息系统的安全进行一次系统全面的评估,以…...
微信小程序 WXS 的概念与基本用法教程
微信小程序 WXS 的概念与基本用法教程 引言 在微信小程序的开发中,WXS(WeiXin Script)是一种特殊的脚本语言,旨在解决小程序在逻辑处理和数据处理上的一些限制。WXS 允许开发者在小程序的 WXML 中嵌入 JavaScript 代码,以便实现更复杂的逻辑处理。本文将深入探讨 WXS 的…...
绪论相关题目
1.在数据结构中,从逻辑上可以把数据结构分成( C)。 A. 动态结构和静态结构 B. 紧凑结构和非紧凑结构 C. 线性结构和非线性结构 D. 内部结构和外部结构 2.在数据结构中,从存储结构上可以将之分为( B)。 A. 动态结构和静态结构 B. 顺序存储和非顺序存储 C. 紧凑结构和非紧…...
【Linux】基础IO-文件描述符
【Linux】基础IO C语言的文件接口文件的初步理解文件IO的系统接口打开文件writeread 文件描述符fd语言层的fd文件描述符的分配规则重定向和缓冲区的理解重定向缓冲区作用刷新策略C语言的缓冲区 模拟实现重定向检查是否是重定向执行命令 0、1、2的作用 C语言的文件接口 这里我们…...
IDEA2024创建一个spingboot项目
以下是创建一个基本的 Spring Boot 项目的步骤和示例: 初始化一个springboot工程其实有许多方法,笔者这里挑了一个最快捷的方式搭建一个项目。我们直接通过官方平台(start.spring.io)进行配置,然后下载压缩包就可以获取…...
第R4周:LSTM-火灾温度预测(TensorFlow版)
>- **🍨 本文为[🔗365天深度学习训练营]中的学习记录博客** >- **🍖 原作者:[K同学啊]** 往期文章可查阅: 深度学习总结 任务说明:数据集中提供了火灾温度(Tem1)、一氧化碳浓度…...
OpenCV相机标定与3D重建(5)鱼眼镜头畸变校正的函数estimateNewCameraMatrixForUndistortRectify()的使用
操作系统:ubuntu22.04 OpenCV版本:OpenCV4.9 IDE:Visual Studio Code 编程语言:C11 算法描述 估计用于去畸变或校正的新相机内参矩阵。 cv::fisheye::estimateNewCameraMatrixForUndistortRectify 是 OpenCV 中用于鱼眼镜头畸变校正的一个函…...