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

密码学——密码学基础、散列函数与数字签名

1.密码学概述

是信息安全的基础和核心,是防范各种安全威胁的重要手段,信息安全的许多相关知识都与密码学相关。

密码学发展

密码学是一门古老而又年轻的学科 ,几千年以前就存在,至今仍在发展演进。地位非常重要甚至起决定性作用。密码学源于希腊语kryptós,意为“隐藏的” 。 最早的密码学应用可追溯到公元前2000年古埃 及人使用的象形文字。

  历史上的第一件军用密码装置是公元前5世纪的斯巴达密码棒它采用了密码学上的移位法(Transposition)原理。发送方把兽皮缠在一根木棍上,在上面写字,写完字后把兽皮解下来,别人看不懂上面写的内容,接收方只要有一根差不多一样的木棒,把兽皮缠在密码棒上就能还原之前写的内容。

用途:保护军事通讯安全

  恺撒大帝发明了最早的实用代替密码方案(尤利 西斯.恺撒100-44 BC)把要发送的消息中的每个字母,根据代替表,替换成对应的字母 。

作用:保护机密通信     用途:保护军事通讯安全

例如:

this is caesar code

vjku ku ecguct eqfg

a  b  c  d  e  f  g  h  i   j k  l  m n  o  p  q  r … x y z

c  d  e  f   g  h  i   j  k  l m n o  p  q  r   s  t … z a b

  二战期间,日本采用M-209转轮机械加密机—紫密,这种加密方式,手工计算短时间无法破解。此时美国已经研制出计算机,1943年,通过解密通信内容获悉山本五十六将于4月18日乘中型轰炸机,由6架战斗机护航,到中途岛视察时,罗斯福总统下令拦截,山本坠机身亡,日本海军从此一蹶不振。

  德国采用的enigmam(谜语)密码机被盟军破译,对于扭转二战局面起到了重要作用。只有字母键,可以可输入的字母直接转化为密文,事先要约定好转子作为密钥。

密码学流派

密码学是在编码与破译的斗争实践中逐步发展起来的, 伴随着编码和破译之间的较量不断发展。

编码密码学:编制密码以保护通信秘密的,称为编码密码学 如:enigmam

密码分析学(或破译密码学):破译密码以获取通信情报的。

发展阶段

第一阶段:古代—1949年 ,密码技术可以说是一种艺术,而不是一种科学, 密码学者常常是凭直觉来进行密码设计和分析, 而不是推理和证明。 在现代计算机技术条件下都是不安全的 ,但是算法思想(代换、置换)是分组密码算法的基本运算模式。

第二阶段:1949年—1975年 ,1949年香农发表的<<保密系统的信息理论>>为私钥密码系统建立了理论基础,从此密码学成 为一门科学 。美、苏、英、法等很多国家已经意识到了密码的重要性,开始投入大量的人力和物力进行相 关的研究,研究成果都是保密的,Enigma的破解过程以及原理都是过 了几十年以后才公布的。

第三阶段:1976年—今 ,1976年Diffie 和 Hellman发表文章“密码学的新动向”开创了公钥密码学的新纪元。是密码学的一场革命。从此,密码开始充分发挥它的 商用价值和社会价值。1978年,Rivest、Shamir和Adleman公布了RSA 密码体制,是第一个真正实用的公钥密码体制,对计算机安全和通信产生巨大影响,发明人因此获得了图灵奖。计算机领域最高奖项。

密码学发展的新方向

量子密码

用目前物理学的知识来开发不能被破解的密码系统,不了解发送的密钥,攻击者无法破解所截获的内容,依赖于物理学作为安全关键,而不是数学上的困难问题。量子密码基于单光子的应用和它固有的量子性质开发出来的不可破解的密码系统。

 混沌密码

是新的密码加密算法,简单、高效。混沌密码是混沌理论的一个重要应用领域,混沌理论用于密码学主要依靠混沌的基本特征(随机性、便利性、确定性、和对初始条件的敏感性),混沌密码体系的结构与传统密码理论当中混淆和扩散概念联系起来,混沌理论和纯密码学之间的必然联系形成了混沌的密码学。

DNA密码

由DNA计算产生,主要特点:以DNA作为信息载体,以现代生物学为主要载体来挖掘DNA固有的高存储密度以及高并行性优点从而实现加密、认证、签名等密码学功能。

缺点:缺乏有效的安全理论依据以及简洁的实现方式,目前的研究主要都是基于发觉DNA可用于信息领域的优良性质,探寻DNA密码可能的发展方向,寻找实现DNA密码的简便方法。

基于格的密码体制

抗量子计算攻击的公钥密码体制,格密码理论研究涉及密码数学问题很多,学科交叉特色非常明显,研究方法也基于多元化。发展大概分为两条主线,一种是从具有历史悠久的经典的格的数学问题的研究发展到近30年来高围格困难问题的求解算法以及计算复杂性理论的研究;另一种是使用格困难问题的求解算法,分析非格公钥密码体制的安全性发展到基于格的困难问题的密码体制的设计。

轻量级密码

密码学分支的一个重要领域,它的目标是针对资源受限(这些设备的计算能力不够强或者无法提供复杂的持续的密码运算)的设备,经给定制和裁剪产生的一种密码解决方案。

应用领域:汽车系统、传感器网络、医疗设备、分布式控制、物联网等。

同态密码

同态密码是基于数学难题和计算机复杂性理论的一种密码学技术,对经过同态加密的数据进行处理,可以得到一个输出,这个结果与使用同一方法来处理未加密的原始数据得到的结果可以是一样的即两个数分别加密后在做加法,密文相加之后的结果解密以后跟直接把这两个数做加法的结果是一样的,这样就可以实现密文域上的运算。

应用领域:密文搜索、电子投票、移动代码和多方安全计算、云计算等。

2.密码学基础

密码学基本概念

要传输的消息M叫做明文,(可以是文本文件、位图、 数字化的语言、数字化的视频图像) 。明文通过加密器加密后得到密文C。将明文变成密文的过程叫加密, 一般记为E,它的逆过程称为解密一般记为D

C=E(M), M=D(C)

密码体制的分类

根据密钥的特点,密码体制可以分为对称密码体制 (Symmetric Cryptosystem) 和非对称密码体制 (Asymmetric Cryptosystem)两种。 加密、解密使用相同密钥的是对称密码体制,也称单钥(Onekey) 加密、解密使用不同密钥的是非对称密码体制,也称做双钥 (Two-Key) 或公钥(Public Key)密码体制。 加密密钥和解密密钥成对出现,从一个难于推算出另一个 ,一个叫公钥public key,一个叫私钥private key。

对称密码体制中,按照加密方式又可以分为流密码(Stream Cipher)和分组密码 (Block Cipher)两种。在流密码中将明文消息按字符逐个地进行加密,类似于流水线 ;在分组密码中将明文消息进行分组(每组N个字符),逐组地进行加密。

科克霍夫(Kerckhoff)原则 :现代密码学的一个基本原则——密码体制应该对外公开,仅需对密钥进行保密。 在设计加密系统时,总是假设密码算法是公开 的,真正需要保密的是密钥。一个密码系统需要保密的越多,可能的弱点也越多。依据柯克霍夫原则,大多数民用加密系统都使用公开的算法。 但相对地,用于政府或军事机密的加密算法通常是保密的。

DES加密算法:

在1976年,IBM沃森公司的菲斯特和美国国家安全局 一起制定了DES标准 (Data Encryption Standard) ,DES算法是美国政府机关为了保护信息处理中的计算机数据而使用的一种加密方式,属于对称密码体制,分组密码算法。加密时算法输入64比特的明文,在64比特密钥的控制下产生并输出64比特的密文;解密时输入64比特的密文,在密钥控制下输出64比特的明文分组。

64比特的密钥中含有 8个比特的奇偶校验位,所以实际有效密钥长度为56比特,密钥扩展6轮 ;解密是加密的逆过程 ;在密码学的历史上是 一个具有深远影响的。

64比特明文首先进行初始置换。功能是把输入的64位数据块按位重新组合,并把输出分为L0 、R0两部分, 每部分各长32位,置换规则使用的是置换表。

虽然由于密钥长度的原因,DES安全性已经无法满足现有信息安全要求 ,3DES是DES算法扩展其密钥长度的一种方法,可使加密密钥长度扩展到128比特 (112比特有效)或192比特(168比特有效)。

基本原理:是将192比特的密钥分为64比特的3组,对明文多次进行普通的DES加解密操作 ,比如用第1组密钥对明文进行DES加密,用第2组密钥对其结果进行DES解密,(第一组、第二组加密、解密使用的密钥不同)再使用第3组密钥对解密结果进行DES加密 ,解密过程还是逆过程。

RSA加密算法:

迄今为止的所有公钥密码体系中,RSA系统是最著名、使用最广泛的一种。RSA属于非对称密码体制。 是由R. Rivest、A. Shamir和L. Adleman三位教授提出的。

基本原理:密钥中心先产生两个足够大的强质数p、q,然后计算n=pxq,再由p和q算出另一个数z=(p-1)×(q-1),然后再选取一个与z互素的奇数e,e为公开指数;根据e值找出另一个值d,并能满足e×d=1 mod (z)条件。由此而得到的两组数(n,e) 和 (n,d)分别作为公钥 和私钥。 素数p、q以及z由密钥管理中心负责保密。在密钥对产生后将其销毁存入离线的安全库以备以后密钥恢复使用 。加密和解密过程都是模指数运算。使用公钥对明文加密得到密文C = M e mod( n) ;使用私钥解密密文得到明文 M= C d mod( n)。

例:

令p=3,q=11,得出n=p×q=3×11=33;z=(p-1)(q-1)=2×10=20;取e=3,(取一个跟20互素的数,3与20互质)则 e×d≡1 mod z,即3×d≡1 mod 20。

通过试算我们找到,当d=7时,e×d≡1 mod z 

公钥为:(e,n)=(3,33),私钥为:(d,n)=(7,33)  明文为 M=5,密文C=5^3 mod 33 = 26(mod 33为除以33之后的余数)  解密过程 M= 26^7 mod 33 = 5

RSA算法的安全性:基于数论中的大整数分解困难问题,即计算两个大的质数的乘积很容易 ,而给定大整数寻找其因子则非常困难。

比如:4399 = 53 X 83  因此,大数n的位数长度非常关键,一般公司级 应用需要1024比特的n,重要的场合应该用2048 比特的n。

3.散列函数与数字签名

哈希函数

也称为Hash函数、杂凑函数、散列函数 ,是密码学中另一个非常重要的工具。

经典的哈希函数: MD5、SHA-1、SHA-3、SM3 ,可以将任意长度的一块数据转换为一个定长的哈希值,可以敏感地检测到数据是否被篡改,结合其他的算法可以用来保护数据完整性,只要输入改一比特,输出就会有巨大不同。

哈希函数的性质:

单向性:给定x容易计算H(x) ,反之则非常困难。

抗碰撞性:对于任意给定的分块x,找到满足 y≠x且H(x)=H(y)的y 在计算上是不可行的,通常认为哈希值和消息是一一 对应的。

哈希函数还可以用来保护用户口令——我们使用很多的登录系统 ,为了不在服务器上明文存放,不在网络上明文传输,一般都将口令做哈希运算 ,用户端哈希值发到服务器验证 ,只能做到一定程度的保护,还是有方法破解(彩虹表:把常见的字母组合、英文单词来进行哈希运算得到一个巨大的明文哈希值的对应表,当攻击者截获到用户的口令哈希值后只要经过查表运算就有可能恢复出来用户口令的明文)

数字签名 

是目前电子商务、电子政务中应用最普遍、技术最成熟的、可操作性最强的一种电子签名方法。它采用了规范化的程序和科学化的方法,用于鉴定签名人的身份以及对一项电子数据内容的认可。它还可以用来验证文件在传输过程中有无内容变动,确保传输数据的完整性、真实性和不可抵赖性。

常见的数字签名算法: RSA Data Security公司的PKCS(Public Key Cryptography Standards)、DSA(Digital Signature Algorithm)、X.509、PGP(Pretty Good Privacy) 、DSS等

密码的相对安全 :数学家香农创立的信息论中用严格的数学方法证明了一个结论:除了一次一密以外,一切密码算法,在理论上都是可以破解的。 没有绝对安全,只有相对安全 。

假如一条信息需要保密10年,如果要花11年的时间才能破解它,那么保密方案就是安全的; 假如一条信息价值100万元,如果需要花1000万元的 代价才能破解它,那它就是安全的。

1.关于密码学学术流派说法错误的是

A. 编码密码学是由密码分析学发展而来

B. 密码学是在编码与破译的斗争实践中逐步发展起来的

C. 破译密码学也叫做密码分析学

D. 可以分为编码密码学和破译密码学

2.密码体制的分类说法错误的是

A. 对称密码体制也称做双钥密码体制

B. 加密、解密使用相同密钥的是对称密码体制

C. 非对称密码体制的加密密钥和解密密钥成对出现,从一个难于推算出另一个

D. 加密、解密使用不同密钥的是非对称密码体制

 3.关于密码学中的柯克霍夫原则,说法正确的是

A. 大多数民用加密系统都使用公开的算法

B. 大多数用于政府或军事机密的加密算法通常是公开的

C. 一个密码系统需要保密的越多,可能的弱点就越少

D. 密码算法应该和密钥一同保密

4.关于DES算法说法错误的是

A. 64比特的密钥中实际有效密钥长度为56比特

B. 64比特的密钥中含有8个比特的奇偶校验位

C. 是一个分组密码算法

D. 加密算法和解密算法是相同的

5.关于RSA算法说法错误的是

A. 基于大整数分解困难问题

B. 用于生成密钥的两个质数作为参数公开

C. RSA属于非对称密码体制

D. 加密和解密过程都是模指数运算

相关文章:

密码学——密码学基础、散列函数与数字签名

1.密码学概述 是信息安全的基础和核心&#xff0c;是防范各种安全威胁的重要手段&#xff0c;信息安全的许多相关知识都与密码学相关。 密码学发展 密码学是一门古老而又年轻的学科 &#xff0c;几千年以前就存在&#xff0c;至今仍在发展演进。地位非常重要甚至起决定性作用…...

鹦鹉的饮食偏好:探索多彩的食物世界

鹦鹉&#xff0c;作为聪明且迷人的鸟类&#xff0c;其饮食习性一直是鸟类爱好者关注的焦点。了解鹦鹉喜欢吃什么食物&#xff0c;对于确保它们的健康与幸福至关重要。 鹦鹉的食物种类丰富多样&#xff0c;首先是各类种子与谷物。例如&#xff0c;葵花籽富含脂肪和蛋白质&#…...

AtCoder Beginner Contest 383

C - Humidifier 3 Description 一个 h w h \times w hw 的网格&#xff0c;每个格子可能是墙、空地或者城堡。 一个格子是好的&#xff0c;当且仅当从至少一个城堡出发&#xff0c;走不超过 d d d 步能到达。&#xff08;只能上下左右走&#xff0c;不能穿墙&#xff09;&…...

HALCON算子函数 Filter(过滤)(1)

Arithmetic图像算数处理 abs_diff_image&#xff1a;计算两个图像的绝对差别&#xff1b;abs_image&#xff1a;计算一个图像的绝对值&#xff08;模数&#xff09;&#xff1b;add_image&#xff1a;使两个图像相加&#xff1b;div_image&#xff1a;使两个图像相除&#xff…...

哈希知识详解

目录 一、哈希 二、哈希函数 1、直接定值法 2、除留余数法 三、哈希冲突 四、哈希冲突解决 1、闭散列(开放定值法) 闭散列代码 2、哈希桶 哈希桶的结构 查找方法 插入方法 删除方法 析构 迭代器 完整哈希桶代码 五、通过哈希桶封装 unordered_map 和 unordered_set 一、…...

分库分表基本概念讲解

一、基本概念 产生背景 在数据爆炸的年代&#xff0c;单表数据达到千万级别&#xff0c;甚至过亿的量&#xff0c;都是很常见的情景。这时候再对数据库进行操作就是非常吃力的事情了&#xff0c;select个半天都出不来数据&#xff0c;这时候业务已经难以维系。不得已&#xf…...

【DRAM存储器四十二】LPDDR5介绍--LPDDR5的bank架构还能配,为什么8B模式只支持BL32?

👉个人主页:highman110 👉作者简介:一名硬件工程师,持续学习,不断记录,保持思考,输出干货内容 参考资料:《某LPDDR5数据手册》 、《JESD209-5C》 目录 BG mode 16B mode 8B mode...

ubuntu 新建脚本shell并增加图标 双击应用实现python运行

1.使用nano创建shell脚本文件 需要在终端窗口中输入“nano”以打开文本编辑器。 nano 在创建脚本文件前&#xff0c;我们要了解脚本文件是如何运行的&#xff1a; 直接运行&#xff1a;直接在终端直接输入需要运行的脚本文件名称&#xff0c;系统或用缺省版本的shell运行脚…...

【0x0006】HCI_Disconnect命令详解

目录 一、命令概述 二、命令格式和参数说明 2.1. HCI_Disconnect 命令格式 2.2. Connection_Handle 2.3. Reason 三、返回事件说明 3.1. HCI_Command_Status 事件 3.2. HCI_Disconnection_Complete事件 3.3. HCI_LE_CIS_Established事件(针对CIS) 四、事件执行流程…...

【C语言练习(5)—回文数判断】

C语言练习&#xff08;5&#xff09; 文章目录 C语言练习&#xff08;5&#xff09;前言问题问题解析结果总结 前言 通过回文数练习&#xff0c;巩固数字取余和取商如何写代码 问题 输入一个五位数判断是否为回文数&#xff1f; 问题解析 回文数是指正读反读都一样的整数。…...

【全连接神经网络】核心步骤及其缺陷

前向传播 计算公式&#xff08;其中一种&#xff09; x1/x2&#xff1a;输入值&#xff0c;一般是神经网络上一层的输出或者输入数据本身&#xff0c;上图中表示两个节点w11 w13&#xff1a;权重&#xff0c;在神经网络中&#xff0c;权重是学习的参数&#xff0c;表示每个输入…...

【Vulkan入门】11-CreateCommandBuffer

[TOC]目录 先叨叨 先叠个甲&#xff0c;我个人都觉得本篇有点灌水的嫌疑。 到上篇为止&#xff0c;已经创建好了Pipeline。接下来就是要给Pipeline发指令进行渲染了。 从一开始就不断强调&#xff0c;发给Vulkan的指令要通过Queue发送给Device。命令不是一条一条推到Queue中的…...

Redis原理—4.核心原理摘要

大纲(9870字) 1.Redis服务器的Socket网络连接建立 2.Redis多路复用监听与文件事件模型 3.基于队列串行化的文件事件处理机制 4.完整的Redis Server网络通信流程 5.Redis串行化单线程模型为什么能高并发 6.Redis内核级请求处理流程与原理 7.Redis通信协议与内核级请求数据…...

面向对象系统的分析和设计

来源&#xff1a;《设计模式精解-GOF23种设计模式解析》 作者&#xff1a;k_eckel k_eckels mindview - 博客园 (cnblogs.com) --------- 面向对象系统的分析和设计实际上追求的就是两点&#xff1a; &#xff08;1&#xff09;高内聚 &#xff08;2&#xff09;低耦合 …...

单片机:实现交通信号灯(附带源码)

使用单片机实现交通信号灯控制系统是一个经典的嵌入式系统应用。这个项目可以帮助你理解如何通过单片机控制不同颜色的LED灯、处理时间控制、以及输入输出的基本操作。通过这个项目&#xff0c;你将掌握如何设计交通信号灯的时序控制、如何实现定时控制交通灯的切换、以及如何与…...

小白如何学习看懂CAD图纸?

首先&#xff0c;你需要了解CAD图纸的基本构成&#xff0c;包括图例、尺寸标注、比例等等。接着&#xff0c;你可以通过一些专业的书籍、在线课程或视频教程来逐步学习如何识别和理解这些元素。但建议不要学的太复杂了。 掌握基本概念&#xff1a; 坐标系&#xff1a;了解CAD…...

HarmonyOS-高级(一)

文章目录 一次开发、多端部署自由流转 &#x1f3e1;作者主页&#xff1a;点击&#xff01; &#x1f916;HarmonyOS专栏&#xff1a;点击&#xff01; ⏰️创作时间&#xff1a;2024年12月09日12点19分 一次开发、多端部署 布局能力 自适应布局 拉伸能力均分能力占比能力缩放…...

Datawhale AI 冬令营(第一期)定制你的第一个专属模型-学习笔记

最近我报名参加了Datawhale组织的主题为“动手学系列&#xff0c;人人都能应用的AI”的Datawhale AI冬令营&#xff08;第一期&#xff09;。 本次学习一共12天&#xff0c;从12月10日-12月21日&#xff0c;学习会包含【跑通速通手册】&#xff0c;【学习大模型微调&数据集…...

群控系统服务端开发模式-应用开发-登录退出发送邮件

一、登录成功发送邮件 在根目录下app文件夹下controller文件夹下common文件夹下&#xff0c;修改Login.php&#xff0c;代码如下 <?php /*** 登录退出操作* User: 龙哥三年风水* Date: 2024/10/29* Time: 15:53*/ namespace app\controller\common; use app\controller\Em…...

app-2 App 应用抓包之 Postern+Charles

一、前言 本篇是基于 Postern Charles 方式对安卓应用数据包进行抓取。可以抓取到市面上大多数的app数据包。 二、环境准备 postern&#xff1a;postern下载地址 charles&#xff1a;Charles 4.5.6 中文版(便携免安装).rar 提取码&#xff1a;6d8f 三、配置及抓包测试 3.…...

cnocr配置及训练测试

cnocr配置及训练测试 1&#xff0c;相关链接2&#xff0c;已有模型调用测试&#xff08;1&#xff09;下载相关模型&#xff08;2&#xff09;Cnstd文本检测模型&#xff08;3&#xff09;模型调用解析脚本 3&#xff0c;自定义数据集训练测试&#xff08;1&#xff09;标签转换…...

【优选算法 前缀和】前缀和算法模板详解:一维前缀 & 与二维前缀和

一维前缀和 题目解析 算法原理 解法一&#xff1a;暴力解法 简单模拟&#xff0c;读完题意有 q 次询问&#xff0c;给哪两个数&#xff0c;就求哪段区间的和并且返回&#xff0c;这样的做法&#xff0c;时间复杂度为O(N*q)&#xff0c;这个时间复杂度会超时&#xf…...

【记录】用JUnit 4的@Test注解时报错java.lang.NullPointerException的原因与解决方法

项目场景&#xff1a; 在练习黑马点评的逻辑过期解决缓存击穿时&#xff0c;编写了一个预热缓存数据的单元测试 SpringBootTest public class HmDianPingApplicationTests {Resourceprivate ShopServiceImpl shopService;Testpublic void testSaveShop() throws InterruptedE…...

Transformer入门(6)Transformer编码器的前馈网络、加法和归一化模块

文章目录 7.前馈网络8.加法和归一化组件9.组合所有编码器组件构成完整编码器 7.前馈网络 编码器块中的前馈网络子层如下图所示&#xff1a; 图1.32 – 编码器块 前馈网络由两个带有ReLU激活函数的全连接层组成。全连接层&#xff08;Fully Connected Layer&#xff09;有时也…...

(七)腾讯cloudstudio+Stable-Diffusion-webui AI绘画教程-安装Stable-Diffusion-WebUI

一、说明 本文选择安装stable-diffusion-webui最新版本 cloud studio 免费版最大的问题是空间不足&#xff0c;我晚上上传时超过了硬盘大小&#xff0c;直接不能启动&#xff0c;没办法&#xff0c;删除&#xff0c;又建了一个工作空间 二、安装 1、打开终端 2、配置Git代理…...

算法基础Day7(动态规划)

文章目录 1.题目2.题目解答1.第N个泰波那契数题目及题目解析动态规划算法学习1.状态表示2.状态转移方程3.初始化4.填表顺序5.空间优化 代码提交空间优化 2.三步问题题目及题目解析算法学习代码提交 1.题目 1137. 第 N 个泰波那契数 - 力扣&#xff08;LeetCode&#xff09;面试…...

代理IP地址和端口是什么?怎么进行设置?

保护个人隐私、突破地域限制、提升网络安全性是我们不断追求的目标。IP地址与端口一种实现这些目标的重要工具。但是&#xff0c;你可能对它是什么&#xff0c;以及如何设置感到困惑。别担心&#xff0c;本文将为你揭开这些神秘的面纱&#xff0c;让你轻松掌握这项技能。 1.IP…...

一文详解TCP协议 [图文并茂, 明了易懂]

欢迎来到啊妮莫的学习小屋! 目录 什么是TCP协议 TCP协议特点✨ TCP报文格式 三次握手和四次挥手✨ 可靠性 效率性 基于字节流✨ 基于TCP的应用层协议 什么是TCP协议 TCP(传输控制协议, Transmission Control Protocol) 是一种面向连接的, 可靠的, 基于字节流的传输层通…...

js后端开发之Next.js、Nuxt.js 与 Express.js

后端js之Next.js、Nuxt.js 与 Express.js 在现代 Web 开发中&#xff0c;JavaScript 已经成为前后端通用的编程语言&#xff0c;而选择合适的后端框架则是构建高效、可扩展应用程序的关键。本文将带你深入了解三个流行的 JavaScript 后端框架&#xff1a;Next.js、Nuxt.js 和 …...

人工智能概要

目录 前言1.什么是人工智能&#xff08;Artificial Intelligence, AI&#xff09;2.人工智能发展的三次浪潮2.1 人工智能发展的第一次浪潮2.2 人工智能发展的第二次浪潮2.3 人工智能发展的第三次浪潮 3.人工智能发展的必备三要素3.1 数据3.2 算法&#xff08;algorithm&#xf…...

spring boot 3集成swagger

Spring Boot 3 集成 Swagger 的过程与之前版本相比有一些变化&#xff0c;主要是因为 springfox 库已经停止更新&#xff0c;并且不再支持新的 Spring Boot 版本。因此&#xff0c;对于 Spring Boot 3 来说&#xff0c;推荐使用 springdoc-openapi 作为集成 Swagger 的解决方案…...

【PlantUML系列】状态图(六)

一、状态图的组成部分 状态&#xff1a;对象在其生命周期内可能处于的条件或情形&#xff0c;使用 state "State Name" as Statename 表示。初始状态&#xff1a;表示对象生命周期的开始&#xff0c;使用 [*] 表示。最终状态&#xff1a;表示对象生命周期的结束&…...

前端缓存页面处理方法

当前一个前端应用新发布时&#xff0c;重新编译后&#xff0c;原来引用的资源文件名都会有变化。如果这个应用的页面在前端浏览器中有缓存&#xff0c;则会导致加载资源失败。怎样去除这种缓存&#xff0c;同时也能尽可能的保证前端访问的性能 ChatGPT said: ChatGPT 这是一个经…...

每日一题 284. 窥视迭代器

284. 窥视迭代器 想要提前知道下一个内容&#xff0c;就需要缓存 class PeekingIterator : public Iterator { public:PeekingIterator(const vector<int>& nums) : Iterator(nums) {// Initialize any member here.// **DO NOT** save a copy of nums and manipula…...

Cesium-(Primitive)-(BoxGeometry)

含实现代码 GISer世界 效果: 以下是 BoxGeometry 类的构造函数属性,以表格形式展示: 属性名类型默认值描述minimumCartesian3盒子的最小 x, y, 和 z 坐标。maximumCartesian3盒子的最大 x, y, 和 z 坐标。vertexFormatVertexFormatVertexFormat.DEFAULT要计算的顶点属性。以下…...

CSS元素宽高特点、类型转化、显式和隐藏(display)

元素的宽高特点 块级元素 可以设置宽高&#xff0c;不可以和其他元素在一行设置宽高时&#xff0c;元素的宽高为设置的值没有设置宽高时&#xff0c;宽度和父级宽高一样&#xff0c;高度由元素内容决定 行级元素 不可以设置宽高&#xff0c;可以和其他元素在一行元素的宽高…...

上市公司投资效率Biddle模型数据(包括最终数据、原始数据及构造说明)2003-2022年

一、计算方式&#xff1a;参考《Journal of accounting and economics》Biddle G C&#xff0c;构建Biddle模型使用企业投资对成长机会的回归模型来估计企业的投资效率&#xff0c;这里成长机会用销售增长率来衡量。回归模型如下图所示: 二、资料范围&#xff1a;包括原始数据…...

矩阵的乘(包括乘方)和除

矩阵的乘分为两种&#xff1a; 一种是高等代数中对矩阵的乘的定义&#xff1a;可以去这里看看包含矩阵的乘。总的来说&#xff0c;若矩阵 A s ∗ n A_{s*n} As∗n​列数和矩阵 B n ∗ t B_{n*t} Bn∗t​的行数相等&#xff0c;则 A A A和 B B B可相乘&#xff0c;得到一个矩阵 …...

Spring Security6.3 自定义AuthorizationManager问题

项目环境&#xff1a; Springboot3.3.5, 对应的SpringFrameWork6.1&#xff0c;Security为6.3 问题&#xff1a;我想自定义AuthorizationManager接口实现类&#xff0c;在里面判断如果角色为amdin则放行请求&#xff1b; 在AdminAuthorizationManager类的check()方法中pass变量…...

第一部分:基础知识 9 . 视图 --[MySQL轻松入门教程]

在MySQL中,视图(View)是一个命名的SQL查询,它被存储在数据库目录中。视图可以包含来自一个或多个表的数据,并且可以像真实表一样被查询。下面是对MySQL视图的详细讲解: 创建视图 使用 CREATE VIEW 语句来创建视图。语法如下: CREATE [OR REPLACE] [ALGORITHM = {UNDEFIN…...

用GPT零负担学单片机之点亮一颗cpu 第3节 训练or特征匹配?用GPT开发嵌入式

用GPT零负担学单片机之点亮一颗cpu 第3节 训练or特征匹配?AI写代码 大家好,我是小杰学长 如果你是大学生 遇到电子技术 学习 成长 入行难题 我曾经通过大学比赛赚钱 从事嵌入式AI 航天军工 用特别的学习和求职方法线下半年带50+学弟学妹入行开发 主页佳喔威信,给你提供一定资…...

2.6、vue2中侦听属性的变化

2.6.1、侦听属性作用侦听属性的变化其实就是监视某个属性的变化。当被监视的属性一旦发生改变时,执行某段代码。2.6.2、watch配置项监视属性变化时需要使用watch配置项 可以监视多个属性,监视哪个属性,请把这个属性的名字拿过来即可。 i.可以监视Vue的原有属性 ii.如果监视的…...

enable_shared_from_this

用途 struct S {shared_ptr<S> dangerous(){return shared_ptr<S>(this); // dont do this!} };int main() {shared_ptr<S> sp1(new S);shared_ptr<S> sp2 sp1->dangerous();return 0; }考虑以上代码&#xff0c;从一个被shared_ptr管理的struc…...

重生之我在异世界学智力题(2)

大家好&#xff0c;这里是小编的博客频道 小编的博客&#xff1a;就爱学编程 很高兴在CSDN这个大家庭与大家相识&#xff0c;希望能在这里与大家共同进步&#xff0c;共同收获更好的自己&#xff01;&#xff01;&#xff01; 本文目录 引言智力题&#xff1a;逃离孤岛智力题&a…...

深入解析下oracle的number底层存储格式

oracle数据库中&#xff0c;number数据类型用来存储数值数据&#xff0c;它既可以存储负数数值&#xff0c;也可以存储正数数值。相对于其他类型数据&#xff0c;number格式的数据底层存储格式要复杂得多。今天我们就详细探究下oracle的number底层存储格式。 一、环境搭建 1.…...

prometheus

1.安装&#xff0c;tar包&#xff0c;解压即用 tar xf prometheus-2.33.3.linux-amd64.tar.gz -C /app/tools/ 2.创建软链接 ln -s prometheus-2.33.3.linux-amd64/ /app/tools/prometheus 3.进入目录 cd /app/tools/prometheus 4.运行 ./prometheus 5.此时&#xff0…...

C# 23种设计模式(1)单例模式(单件模式)

一、单例模式介绍 单例模式&#xff08;Singleton Pattern&#xff09;是一种创建型设计模式&#xff0c;它确保一个类只有一个实例&#xff0c;并提供一个全局访问点。这个模式在需要一个对象被共享且全局唯一的情况下非常有用&#xff0c;比如配置对象、日志对象、数据库连接…...

Javaweb:HTML、CSS

学习 资源1 学习资源 2 黑马javaweb HTML 1、基础标签、样式 图片标签&#xff1a;<img> src:绝对路径、相对路径(绝对磁盘路径&#xff0c;网络路径&#xff1b;./当前目录&#xff09;width:宽度&#xff08;百分比&#xff09;height:高度&#xff08;百分比&…...

SmartDV将SDIO系列IP授权给RANiX开发车联网(V2X)产品

双方的合作将增强符合ISO 26262标准的车联网&#xff08;V2X&#xff09;系统的通信和连接能力&#xff0c;加速实现更安全、更智能的汽车系统和车辆创新 加利福尼亚州圣何塞市&#xff0c;2024年12月——灵活、高度可配置、可定制化的半导体设计知识产权&#xff08;IP&#…...

【Android】创建型设计模式—单例模式、工厂模式、建造者模式

单例模式 单例模式&#xff08;Singleton Pattern&#xff09;是一种创建型设计模式&#xff0c;它确保一个类只有一个实例&#xff0c;并提供全局访问点。 单例模式类图&#xff1a; #mermaid-svg-kzf6IdXdYeNOHtP0 {font-family:"trebuchet ms",verdana,arial,sa…...