密码学:对称加密算法、非对称加密算法、哈希算法

「作者简介」:冬奥会网络安全中国代表队,CSDN Top100,就职奇安信多年,以实战工作为基础著作 《网络安全自学教程》,适合基础薄弱的同学系统化的学习网络安全,用最短的时间掌握最核心的技术。

在这里插入图片描述

这一章节我们需要知道密码算法分哪几类,对称算法、非对称算法、哈希算法分别有哪些。

在这里插入图片描述

网络安全有 CIA 三大属性,也就是「保密性」「完整性」「可用性」,其中「保密性」「完整性」依赖「密码」实现。所以,密码是网络安全的基石,没有密码就没有网络安全。

扩展:这里的密码指的是「使用算法对数据进行加密或认证」的一种技术、产品或服务。严格来说,我们平时登录账号使用的那个不算密码,应该叫口令。

一个安全的密码需要满足以下三个条件:

  1. 破译密码的实际「计算量」无法实现。比如你用目前最高的算力的计算机也穷举不出来。
  2. 破译密码所需要的「时间」超过数据的生命周期。比如我的数据保密期是一年,你得花两年才能破译,那我的密码也算安全。
  3. 破译密码的「成本」超出数据本身的价值。比如我的数据价值一万,你得花了两万才能破译,那我的密码也算安全的。

密码学

  • 1、算法分类
  • 2、对称算法
    • 2.1、DES
      • 2.1.1、生日攻击
    • 2.2、3DES
    • 2.3、AES
    • 2.4、IDEA
    • 2.4、SM1
    • 2.6、SM4
    • 2.7、SM7
    • 2.8、RC2
    • 2.9、RC4
    • 2.10、RC5
    • 2.11、BlowFish
    • 2.12、TwoFish
  • 3、非对称算法
    • 3.1、RSA
    • 3.2、ECC
    • 3.3、EIGamal
    • 3.4、DSA
    • 3.5、DH
    • 3.6、SM2
    • 3.6、SM9
  • 4、哈希算法
    • 4.1、消息鉴别码
    • 4.2、数字签名
  • 5、国密算法
  • 6、PKI
    • 6.1、数字证书

1、算法分类

密码体系中有一些概念需要了解:

  • 明文:需要被保护的数据,需要保密。
  • 密文:加密后的数据,可以公开。
  • 算法:明文转换成密文的方法,可以公开(国密算法除外)。
  • 加密:明文转换成密文的过程。
  • 解密:密文转换成明文的过程。
  • 加密密钥:加密时需要使用的密钥,可以公开。
  • 解密密钥:解密时需要使用的密钥,需要保密。

发送方使用「算法」「加密密钥」将明文加密成密文后传输,密码分析者只能嗅探到「密文」,想看明文必须先解密;接收方收到密文后,使用「算法」「解密密钥」将密文解密成明文。通信流程如下:

在这里插入图片描述

其中最重要的是密码的算法和密钥,密码算法越「复杂」、密钥保管的越好、密钥的「长度」越长,密码的安全性就越高。

密码的算法分为对称算法、非对称算法、哈希算法三类:

  1. 「对称算法」:也叫加密算法,常用来加密数据,保证数据的机密性。
  2. 「非对称算法」:也叫密钥算法或数字签名算法,常用来做身份认证。
  3. 「哈希算法」:保证数据的完整性。

2、对称算法

对称算法的「加密密钥」「解密密钥」相同,也就是所谓的对称。

对称算法的安全性依赖「秘钥」,通信之前,双方「协商」一个秘钥,然后用这个秘钥进行加密和解密。

不同用户之间必须使用「不同」的对称秘钥,秘钥的「数量」随着用户数量增加呈「几何增长」

对称密钥算法由于密钥短,所以加密速度快、效率高,适合加密「大量」的数据。

对称算法的算法细节都是公开的,但秘钥需要保密,秘钥长度越长,安全性就越高,但计算时间也越长,效率就越差。

对称算法主要有:DES系列、SM系列、RC系列、fish系列。

「DES系列」:DES、3DES、AES、IDEA

  • DES:对称分组加密算法,分组长度64位,密钥长度64位,去掉8个校验位有效长度只有56位,已弃用。
  • 3DES:DES的升级版,使用3次DES加密数据,秘钥长度是112或168位。
  • AES:DES的替代方案,秘钥长度是128位、192位或256位,使用最多的对称加密算法。
  • IDEA:DES的替代方案,类似三重DES,秘钥长度是128位。

「SM系列」:SM1、SM4、SM7

  • SM1:(国产)商密1号算法,秘钥长度是128位,用来替代AES,算法不公开。
  • SM4:(国产)商密4号算法,秘钥长度是128位,用来替代AES,算法公开。
  • SM7:(国产)商密7号算法,秘钥长度是128位,算法未公开。

「RC系列」:RC2、RC4、RC5

  • RC2:DES的替代方案,秘钥长度是1~128位,已弃用。
  • RC4:流加密算法,密钥长度是40~204位。
  • RC5:参数可变,秘钥长度是0~2040位。

「fish系列」:BlowFish、TwoFish

  • BlowFish:DES的替代方案,分组长度64位,秘钥长度是32位到448位。
  • TwoFish:分组长度128位,秘钥长度是128、192、256位。

扩展:位是二进制的基本单位,有0和1两种表现形式;一个字节等于8位,也就是8个0或1。一个英文字符占一个字节,比如字符‘a’就是一个字节;一个汉字占两个字节,比如汉字“我”占两个字节。

2.1、DES

DES(Data Encryption Standard)是早期的数据加密标准,后来被发现不安全,已经淘汰了。

DES使用对称的分组加密算法,意思就是把数据分成多个数据块或分组,然后一块一块的加密。

  1. 数据分块:先把明文数据分成一个个64位的数据块,不足64位的就填充。
  2. 初始置换:把64位数据块作为输入,重新排序,生成新的64位数据块。
  3. 加密轮次:把64位数据块分为左右两个32位数据块,把右边的32位数据块扩展成48位的秘钥,用秘钥和左边的32位数据块进行异或,异或的32位结果和左边的32位数据拼接成新的64位数据块,作为下一轮加密的输入,重复进行16轮加密。
  4. 末尾置换:将加密后的64位数据块,重新排序,生成密文。

秘钥的长度是64位,减去8个校验位,实际有效的秘钥长度只有56位,很容易就能穷举出来。

2.1.1、生日攻击

生日攻击是密码学的攻击方式之一,DES就容易被生日攻击穷举爆破出来。

生日攻击来源于概率学中的生日问题,也叫生日悖论,这里的悖论是指跟人们的常识不同。比如一年有365天,生日就有365个,按照人们的常识,一间教室里最起码得有366个人才有可能出现两个人生日相同的情况。但实际上,一间教室只要有23个人,那么出现两个人生日相同的概率就会大于50%。

拿DES算法举例,DES的秘钥有效长度是54位,秘钥可能得数量就是2的54次方,这个数字看起来是巨大的,但按照生日攻击的逻辑,秘钥出现重复情况的概率要远比我们想象中的大,所以容易被穷举爆破。

2.2、3DES

3DES(Triple Data Encryption Standard)也叫Triple DES 或者 TDEA(Triple Data Encryption Algorithm),是三重加密算法,属于对称的分组加密算法,对一组64位的数据块执行三次DES算法,实现方式有4种:

  1. 使用三个不同的秘钥(k1,k2,k3)连续执行3次DES加密。
  2. 使用三个不同的秘钥(k1,k2,k3),第一次用DES加密,第二次用DES解密,第三次再用DES加密。
  3. 使用两个不同的秘钥(k1=k3,k2)连续执行3次DES加密。
  4. 使用两个不同的秘钥(k1=k3,k2),第一次用DES加密,第二次用DES解密,第三次再用DES加密。

前两种秘钥总长度是168位,后两种秘钥总长度是112位,比DES安全很多,但是加密时间太长,效率不高。

扩展:SSL/TLS协议信息泄露漏洞(CVE-2016-2183)就是因为TLS, SSH, IPSec协商及其他产品中使用的DES及Triple DES加密,被原理扫描出来的。Nessus将秘钥长度位64位~112位的任何加密判定为中等强度。

2.3、AES

AES(Advanced Encryption Standard)也叫高级加密标准,是美国国家标准技术研究所NIST为了取代DES而设定的加密标准。2000年从多个候选算法中选中Rijndael算法作为AES标准,2006年开始成为最流行的算法。

AES加密标准认为,安全的加密算法需要满足一下4个基本要求:

  1. 使用对称的分组加密方式。
  2. 分组长度最少128位。
  3. 秘钥长度最少128位。
  4. 算法容易被各种硬件和软件实现。

AES会把明文数据分成一个个128位的数据块,对每个数据块进行多轮行列混淆和加密。
AES支持128位、192位、256位三种秘钥长度,也就是我们常说的AES128、AES192、AES256。

2.4、IDEA

IDEA(International Data Encryption Algorithm)是国际数据加密算法。

将明文分割成64位的数据块,使用128位的秘钥进行加密。

加密强度很高,由于受专利保护,需要付费使用,所以使用量没有DES那么多。

2.4、SM1

SM1是商密1号算法,是国家密码管理局编制的商用的分组加密算法。

分组长度和秘钥长度都是128位,安全强度和AES相当。算法不公开,只能集成在芯片里使用。

2.6、SM4

SM4是商密4号算法,是国家密码管理局编制的商用的分组加密算法。

分组长度和秘钥长度是128位,安全强度和AES相当。算法公开,常用于无线局域网。

2.7、SM7

SM7是商密7号算法,是国家密码管理局编制的商用的分组加密算法。

分组长度和密钥长度都是128位,常用于非接触式IC卡,比如门禁卡、工作证、校园卡。

2.8、RC2

RC2是用来代替DES的对称的分组加密算法,

分组长度是64位,秘钥长度是可变的1~128位,在老旧机型上运行速度快,现在大部分场景下已经不推荐使用了。

2.9、RC4

RC4是一种对称的流加密算法,应用在有线等效保密协议WEP。

流加密就是使用固定长度的密钥生成一个随机的与明文数据字节数相同的密钥流,与明文的字节流逐位异或,生成密文。秘钥长度是可变的40位到2048位,

2.10、RC5

RC5是一种对称的分组加密算法,分组、秘钥可变。

分组长度可以是32位、64位、128位,秘钥长度是0~2040位,加密轮次随着长度的增加而增加。

2.11、BlowFish

BlowFish是用来替代DES的对称分组加密算法。

将明文分割成64位的数据块,使用32位到448位可变长度的秘钥进行加密。

加密强度很高,但分组块只有64位,相对于AES来说,更容易收到生日攻击。

2.12、TwoFish

TwoFish是一种对称的分组加密算法,常用于磁盘加密。

分组长度是128位,秘钥长度可以是是128位、192位、256位。

3、非对称算法

非对称算法的加密密钥和解密密钥是不同的,分别叫做公钥和私钥。公钥用来加密数据,可以公开传输;私钥用来解密数据,需要保密,保存在本地。

非对称算法的原理如下:

  1. 通信前,接收方生成一对密钥,将其中一个作为公钥发送给发送方;
  2. 发送方使用公钥将明文加密成密文,发送给接收方;
  3. 接收方使用私钥解密密文,拿到明文。

非对称算法通常是以某个数学难题为基础,扩展而来的,主要分大素数分解和离散对数这两种:

大素数分解类主要有:RSA

离散对数主要有:ECC、EIGamal、DSA、DH、SM2、SM9。

3.1、RSA

RSA是三个算法创始人名字的首字母缩写,以数学难题 大素数的因数分解 扩展出来的。

素数也叫质数,是一个大于1的自然数,除了1和它本身外,不能被其他自然数整除,也就是除了1和它本身外不再有其他的因数。

因数分解就是把一个正整数写成几个约数的乘积,比如45可以分解成3×3×5

大素数的因数分解难题,简单来说就是:给出两个素数,很容易将他们相乘;但给出他们的乘积,想得到这两个素数就非常困难。比如我们给出一个几百位的素数,想要因数分解,从理论上来讲,几乎就是不可能的,这就是RSA算法安全性的保障。

素数越大,求解难度越高,官方给RSA的最小密钥长度要求是1024位。
DSA是1024位,ECC是160位

RSA的算法大致如下,大家了解大概步骤即可:

1)生成密钥:

  • 选择两个大素数p和q,计算他们的乘积 n=p×q。
  • 用欧拉函数计算t=(p-1)(q-1)。
  • 选择一个质数e,e和t互质,且1<e<t。
  • 计算e关于t的模逆元d,即(dxe)%t=1。
  • 生成公钥(n,e),生成私钥(n,d)

2)加密:

  • 将明文转化为整数m,m<n。
  • 用公钥加密m,密文c=m^e mod n。

3)解密:

  • 用私钥解密c,明文m=c^d mod n。

3.2、ECC

ECC(Elliptic curve cryptography)是椭圆曲线算法,以数学难题 椭圆曲线的离散对数 扩展出来的。

RSA的数学原理简单,实际应用中比较容易实现,求解难度是亚指数级的;而ECC的数学原理很复杂,实际应用中也比较难实现,求解难度是指数级的。ECC160位的密钥就能达到RSA1024位密钥的安全性,速度更快也更安全。

3.3、EIGamal

EIGamal是以数学难题 计算有限域上离散对数 扩展出来的。

求解离散对数是困难的,而其逆运算可以应用平方乘的方法有效的计算出来。

3.4、DSA

DSA(Digital Signature Algorithm)也叫DSS,是ElGamal的变种,也是以数学难题 有限域的离散对数 扩展出来的。

DSA的算法大致如下,了解步骤即可:

  1. 选择一个大素数p和一个小于p的奇数q,计算n=2p。
  2. 选择一个随机整数k(1 < k < q),计算g=g^k (mod p)。
  3. 私钥a^(p-1-k) ≡ 1 (mod p),1 < a < q,且a与q互质。
  4. 公钥b=g^a (mod p)。

3.5、DH

DH(Diffie-Hellman)是密钥交换协议,以数学难题 离散对数 扩展出来的,只用来协商密钥,不加密数据。

DH的算法大致如下,了解步骤即可:

  1. 发送方和接收方选择两个大素数 n 和 g。
  2. 发送方选择一个大随机整数 x,计算 X = g^x mod n,发送 X 给接收方。
  3. 接收方选择一个大随机整数 y,计算 Y = g^y mod n,发送 Y 给发送方。
  4. 发送方密钥 k1 = Y^x mod n;接收方密钥 k2=X^y mod n

密钥协商完成后,k1 == k2,n、 g、 X、Y都能在网络中捕获,但无法计算出密钥,除非能恢复x、y。发送方和接收方使用密钥和对称加密算法加密/解密数据。

3.6、SM2

SM2是商密2号算法,是国家密码管理局编制的商用的椭圆曲线公钥密码算法,以数学难题 椭圆曲线的离散对数 扩展出来的非对称加密算法。目的是替代RSA算法,算法未公开。

3.6、SM9

SM9是商密9号算法,是国家密码管理局编制的标识密码标准,加密强度相当于3072位的RSA,也是基于椭圆曲线的离散对数问题开发的非对称加密算法,主要用于身份认证,算法未公开。

4、哈希算法

哈希算法可以将任意长度的输入转换成固定长度的输出,用来保证数据的完整性。

哈希算法是单向的、不可逆的。数据只要有1个字符不一样,哈希值就会发生巨大变化,因此可以保证数据的完整性;计算哈希值需要用到密钥,密钥只有发送方和接收方有,因此可以保证数据不被其他发送者伪造;消息中携带的需要,可以保证数据发送的顺序。

常见的哈希算法有:MD5、SHA-1、SHA-2、SM3。

  • MD5:使用分组加密的方式计算哈希值,分组长度512位,输出是128位,容易碰撞,不安全。
  • SHA-1:使用分组加密的方式计算哈希值,分组长度512位,输出是160位,容易碰撞,不安全。
  • SHA-2:SHA-224、SHA-256、SHA-384、SHA-512这四个算法的统称,使用分组加密的方式计算哈希值,分组长度是512位,输出分别是224位、256位、284位、512位,不容易碰撞,相对安全。
  • SM3:商密3号算法,使用分组加密的方式计算哈希值,分组长度512位,输出是256位,安全性和SHA-256相同。

扩展:哈希碰撞就是两个不同的输入被转换成了相同的输出,因为哈希算法的输出长度是固定的,那它的结果集就是有限的。比如一年有365天,对应的有365个生日,当班里的人数超过365个时,就一定会有两个生日重复的人(实际上按照生日攻击的逻辑,23个人生日就有可能重复)。

4.1、消息鉴别码

消息鉴别码(Message Authentication Code,MAC)也叫消息认证码,使用密钥生成一个固定长度的输出,放在数据末尾一起传输,用来保证数据的完整性,实现身份验证。

计算消息鉴别码的算法教MAC函数,跟哈希函数类似,都是单向散列函数,不可逆,不同的是,哈希函数加密数据不需要密钥,只保证完整性,不做身份验证;而MAC函数加密数据需要密钥,即保证完整性,也能做身份验证。

4.2、数字签名

实现抗抵赖。

  1. 通信前,发送方将公钥发送给接收方。
  2. 通信时,发送方使用哈希算法计算出数据的哈希值,使用私钥加密哈希值得到数字签名,将数据和数字签名发送给接收方。
  3. 接收方使用同样的哈希算法计算数据的哈希值,并使用发送方的公钥解密数字签名得到哈希值,判断两个哈希值是否相同。

如果两个哈希值相同,就说明数据没有被伪造(真实性),就是你用私钥加密后发给我的(抗抵赖性)。

5、国密算法

前文提到的很多SM系列算法都是国密算法,由国家密码管理局发布。国密算法目前正在大力推广,相关政策规定关键信息基础设施系统、等保三级及以上系统、重要的电子政务平台都要使用国密算法做相应的改造。这一点我们必须要知道。

常用的国密算法:

  • SM1:(分组加密)对称加密算法,密钥长度128位,替代AES,集成在芯片里使用。
  • SM2:(椭圆曲线的离散对数)非对称加密算法,替代RSA。
  • SM3:(分组加密)哈希算法,输出长度256位,替代SHA-256。
  • SM4:(分组加密)对称加密算法,密钥长度128位,替代AES,用于无线局域网。
  • SM7:(分组加密)对称加密算法,密钥长度128位,替代AES,用于非接触式IC卡。
  • SM9:(椭圆曲线的离散对数)非对称加密算法,替代3072位的RSA。

6、PKI

PKI(Public Key Infrastructure)是公钥基础设施管理系统,利用公开密钥技术管理公开的密钥。

为了解决互联网中数据传输的保密性、完整性、身份认证和抗抵赖这四个问题,PKI通过第三方可信机构颁发数字证书,把用户信息和公钥绑定到一起。

PKI体系由4个部分组成:

  • CA(Certificate Authority):证书颁发机构,负责颁发和管理数字证书。
  • RA(注册权威):充当代理的角色,处理证书请求,分担CA的压力。
  • 证书库/CRL:通常以LDAP目录服务的形式存在,存储所有数字证书的数据库,维护CRL列表,CRL列表是证书黑名单,过期、吊销的证书都放在黑名单里。
  • 终端实体:使用证书的用户或应用程序。

6.1、数字证书

数字证书用来标识互联网中通讯各方的身份,证书内容至少要包含:证书有效期、颁发机构和机构的签名、证书持有者和持有者的公钥。

我们以百度为例查看百度的数字证书。点左边的小锁 -> 连接安全 -> 证书图标,打开证书,可以看到证书是颁发给百度的(baidu.com),颁发者是GlobalSign,有效期是一年。

在这里插入图片描述
点开详细信息可以看到公钥用的是2048位的RSA。

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/38373.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

重生之我要学后端0--HTTP协议和RESTful APIs

http和RESTful APIs HTTP协议RESTful APIs设计RESTful API设计实例 HTTP协议 HTTP&#xff08;超文本传输协议&#xff09;是用于分布式、协作式和超媒体信息系统的应用层协议。它是网页数据通讯的基础。工作原理简述如下&#xff1a; 客户端请求&#xff08;Request&#xf…

【期末速成】计算机操作系统 EP07 | 学习笔记(基于五道口一只鸭)

文章目录 一、前言&#x1f680;&#x1f680;&#x1f680;二、正文&#xff1a;☀️☀️☀️2.1 考点十八&#xff1a;管程的概念与特征 一、前言&#x1f680;&#x1f680;&#x1f680; ☀️ 回报不在行动之后&#xff0c;回报在行动之中。 本文简介&#xff1a;本人是大二…

vue 组件el-tree添加结构指示线条

效果展示: 注意&#xff1a;组件中需要添加:indent"0" 进行子级缩进处理&#xff0c;否则会出现子级缩进逐级递增 :expand-on-click-node"false" 设置点击箭头图标才会展开或者收起 代码&#xff1a; <el-tree class"tree filter-tree" :da…

张高兴的 MicroPython 入门指南:(一)环境配置、Blink、部署

目录 什么是 MicroPython环境配置 硬件部分软件部分Hello World&#xff01;Blink Pico 的引脚常见电子元件 面包板跳线开关发光二极管电阻使你的 Pico 闪烁部署参考 什么是 MicroPython MicroPython 是一个基于 Python 3.4 的高效实现&#xff0c;它专为微控制器和嵌入式系统设…

Springboot ResourceLoader获取指定package目录下所有的类(get class in jar on Linux)

get class in jar on Linux Springboot ResourceLoader获取指定package目录下所有的类 PathMatchingResourcePatternResolver resolver new PathMatchingResourcePatternResolver();String pattern ResourcePatternResolver.CLASSPATH_ALL_URL_PREFIX ClassUtils.convertClas…

“吃饭大学”!中国大学食堂排行TOP10(含西电)

同学们们&#xff0c;考研择校考虑的因素除了学术&#xff0c;地理位置等方面&#xff0c;你们还会考虑哪些因素呢&#xff1f;小研作为一个吃货&#xff0c;必定会考虑的一个因素当然是大学的食堂美食啊~ 那中国超级好吃的大学食堂在哪&#xff1f;一起来看看有没有你的目标院…

软考初级网络管理员__网站单选题

1.以下关于服务器端脚本的说法中&#xff0c;正确的是()。 Script 编写 只能采用VBScript 编写 浏览器不能解释执行 由服务器发送到客户端&#xff0c;客户端负责运行 2.站点首页最常用的文件名是()。 index.html homepage.html resource.html mainfrm.html 3.在HTML…

Java 项目的构建工具 Maven

Maven 一、Maven 简介二、Maven 安装配置1、Maven 下载安装2、Maven 配置 三、IDEA 集成 Maven四、Maven 依赖管理1、依赖配置2、依赖传递3、依赖范围4、生命周期 五、Maven 高级特性1、分模块设计与开发2、Maven 继承3、Maven 版本管理4、Maven 聚合5、私服 一、Maven 简介 M…

Mac虚拟机软件有什么用?

随着苹果M系列芯片电脑的推出&#xff0c;虚拟机的使用变得越来越流行。不同于苹果以往的Intel处理器电脑&#xff0c;其M系列芯片电脑无法安装双系统。如果要使用非macOS系统&#xff0c;可以通过创建虚拟机系统的方式实现。那么&#xff0c;虚拟机软件有什么作用和用途&#…

设计模式-代理模式和装饰者模式

二者都是结构型的设计模式. 1.代理模式 1.1定义 为其他对象提供一种代理以控制对这个对象的访问. 代理从code实现方面分为静态代理和动态代理两种&#xff1b; 从适用范围来看,分为远程代理,虚拟代理,保护代理,智能引用几种. 远程代理:为某个对象在不同的内存地址空间提供…

【Python】已解决:The method is not allowed for the requested URL.

文章目录 一、分析问题背景二、可能出错的原因三、错误代码示例四、正确代码示例五、注意事项进阶讨论总结 已解决&#xff1a;The method is not allowed for the requested URL. 一、分析问题背景 在开发Web应用程序时&#xff0c;常常需要处理不同的HTTP请求方法&#xff…

WPF的IValueConverter用于校验和格式化TextBox的数字输入

在数据绑定&#xff08;Data Binding&#xff09;的上下文中&#xff0c;我们经常使用继承 IValueConverter 接口的类&#xff0c;用于在源值和目标值之间进行转换。该接口定义了两个方法&#xff1a;Convert 和 ConvertBack&#xff0c;这两个方法分别用于从源值到目标值的转换…

centos 7.9 离线环境安装GPU服务环境

文章目录 centos 7.9 离线环境安装GPU服务环境系统配置更新 gcc更新内核安装显卡驱动安装cuda安装docker 和 nvidia-container-runtime验证 centos 7.9 离线环境安装GPU服务环境 基于centos 7.9 离线安装gpu 服务基础环境&#xff0c;用于在docker 中运行算法服务 系统配置 …

LeetCode 全排列

思路&#xff1a;这是一道暴力搜索问题&#xff0c;我们需要列出答案的所有可能组合。 题目给我们一个数组&#xff0c;我们很容易想到的做法是将数组中的元素进行排列&#xff0c;如何区分已选中和未选中的元素&#xff0c;容易想到的是建立一个标记数组&#xff0c;已经选中的…

二轴机器人装箱机:重塑物流效率,精准灵活,引领未来装箱新潮流

在现代化物流领域&#xff0c;高效、精准与灵活性无疑是各大企业追求的核心目标。而在这个日益追求自动化的时代&#xff0c;二轴机器人装箱机凭借其较佳的性能和出色的表现&#xff0c;正逐渐成为装箱作业的得力助手&#xff0c;引领着未来装箱新潮流。 一、高效&#xff1a;重…

解析桥式整流电路

下面这个桥式整流电路出场率很高&#xff0c;看着一定眼熟。 事实证明&#xff0c;强行灌输的东西总是难以下咽。记得读书那会&#xff0c;第一次看到这个电路时被吓到了&#xff0c;以至于直到这门课结束了也没搞清楚。 本文就来分析一下此电路中电流的走向&#xff0c;进而理…

Spark SQL 的总体工作流程

Spark SQL 是 Apache Spark 的一个模块,它提供了处理结构化和半结构化数据的能力。通过 Spark SQL,用户可以使用 SQL 语言或 DataFrame API 来执行数据查询和分析。这个模块允许开发者将 SQL 查询与 Spark 的数据处理能力结合起来,实现高效、优化的数据处理。下面是 Spark S…

Labview绘制柱状图

废话不多说&#xff0c;直接上图 我喜欢用NXG风格&#xff0c;这里我个人选的是xy图。 点击箭头指的地方 选择直方图 插值选择第一个 直方图类型我选的是第二个效果如图。 程序部分如图。 最后吐槽一句&#xff0c;现在看CSDN好多文章都要收费了&#xff0c;哪怕一些简单的入…

Spark SQL----ANSI Compliance

Spark SQL----ANSI Compliance 一、算术运算二、Cast2.1 Rounding in cast 三、存储分配四、Type coercion4.1 类型提升和优先级4.2 最不常见类型解析 五、SQL函数5.1 函数调用5.2 具有不同行为的函数 六、SQL操作符七、ANSI模式的有用函数八、SQL关键字(可选&#xff0c;默认禁…

浪子易支付最新增加订单投诉版源码

此版本增加了订单投诉功能&#xff0c;和一个好看的二次元模板。