密码学:一文看懂初等数据加密一对称加密算法

在这里插入图片描述

文章目录

  • 对称加密算法简述
  • 对称加密算法的由来
  • 对称加密算法的家谱
  • 数据加密标准-DES
  • 简述
  • DES算法的消息传递模型
    • DES算法的消息传递过程
    • 和Base64算法的消息传递模型的区别
  • 算法的实现
  • 三重DES-DESede
    • 三重DES-DESede实现
  • 高级数据加密标准一AES
    • 实现
  • 国际数据加密标准-IDEA
    • 实现
  • 基于口令加密-PBE
    • 基于PBE算法的消息传递模型
  • 应用场景
  • 参考

我们都有使用密码保护私密信息的经历,甚至可以说是习惯。我们往往不希望无关的人窥探我们的隐私,从孩童时代就知道用“密码日记本”记录自己的一些隐私。密码日记本无非是一个带锁的日记本。不管是读日记还是写日记都离不开这个密码。
上述情形就好比我们应用黑匣子,需要读写操作,需要同一套密钥。写操作伴随加读操作伴随解密。加密和解密操作使用同一套密钥,这就是对称加密算法的核心。

对称加密算法简述

对称加密算法是当今应用范围最广,使用频率最高的加密算法。它不仅应用于软件行业,在硬件行业同样流行。各种基础设施但凡涉及安全需求,都会优先考虑对称加密算法。

对称加密算法的由来

对于大多数对称加密算法而言,解密算法是加密算法的逆运算,加密密钥和解密密钥相同。如果我们把Base64算法改良将其字符映射表作为密钥保存,就可以把这个改良后的Base64算法作为一种对称加密算法来看。当然,加密算法这样改良后的安全强度还远远不够,但足以让我们认识对称加密算法的特点。

对于Base64概念模糊的同学可以来这里报到:密码学:一文看懂Base64算法

对称加密算法易于理解,便于实现,根据加密方式又分为密码和分组密码,其分组密码工作模式又可分为ECB、CBC、CFB、OFB和CTR等,密钥长度决定了加密算法的安全性。
有关对称加密算法相关理论知识,可以来这里报到:密码学:一文读懂对称密钥体系

对称加密算法发展至今已相当完备。以DES算法为例,由于密钥长度的不满足,衍生出了DESede算法 (也称为TripleDES或3DES算法,翻译成中文是“三重DES”算法)。为了替代DES算法又有了AES (Rijndael) 算法。此外,还有RC系列算法包含RC2、RC4以及针对32位/64位计算机设计的RC5算法(细分为RC5-32和RC5-64,分别对应32位和64位计算机)
除了上述算法,我们还常常会用到Blowfish、 Twofish、Serpent、IDEA和PBE等对称加密算法。

对称加密算法的家谱

在对称加密算法中,DES算法最具有代表性,堪称典范。DESede是DES算法的变种。AES算法则作为DES算法的替代者,而IDEA算法作为一种强加密算法,成为电子邮件加密软件PGP (Pretty Good Privacy) 的核心算法之一。

数据加密标准-DES

DES算法和DESede算法统称DES系列算法。DES算法是对称加密算法领域中的典型算法,为后续对称加密算法的发展奠定了坚实的基础。DESede算法基于DES算法进行三重迭代,增加其算法安全性。经过一番筛选,Rijndeal算法最终成为了AES算法。这期间,对称加密算法发展迅速,与Rijndeal算法竞争的算法包括Blowfish、Serpent等。IDEA算法也源于增加算法的安全性替代DES算法,诸多对称加密算法的发展均源于DES算法的研究而来。

简述

1973年,美国国家标准局 (NBS, National Bureau ofStandards) (即现在的美国国家标准技术研究所 (NationalInstitute of Standards and Technology,NIST) ) 征求国家密码标准方案,IBM公司提交了自己研制的算法 (Luciffer算法,于1971年末提出)。1977年7月15日,该算法被正式采纳,作为美国联邦信息处理标准生效,并很快应用到国际商用数据加密领域,成为事实标准,即数据加密标准 (DataEncryption Standard,DES) ,DES算法由此诞生。

DES算法作为现代密码学领域中第一个官方授权的加密算法受到全球各大密码学机构的关注。DES算法密钥偏短,仅有56位迭代次数偏少,受到诸如查分密码分析和线性密码分析等各种攻击威胁,安全性受到严重威胁。不仅如此,由于DES算法具有半公开性质,被怀疑存在美国国家安全局 (National SecurityAgency,NSA) 安置的后门,受到各大密码学机构的强烈质疑。

1998年后,实用化DES算法破译机的出现彻底宣告DES算法已不具备安全性。1999年NIST颁布新标准,规定DES算法只能用于遗留加密系统,但不限制使用DESede算法。以当今计算机技术能力,经DES算法加密的数据在24小时内可能被破解。由此,DES算法正式退出历史舞台,AES算法成为它的替代者。

即便如此,DES算法对于密码学领域的贡献确实是巨大的。各种对称加密算法均由研究DES算法发展而来,对后续对称加密算法的发展起到奠基作用。DES算法实现不仅遍布软件行业,甚至很多硬件芯片本身也具备DES加密实现。同时,作为一款较易实现的加密算法,DES算法也成为最应学习的对称加密算法,其地位堪比C语言在计算机语言中的地位。

基于CBC工作模式的DES算法相关文档可参考:RFC1829

历经20年发展,DES算法不仅应用在软件行业,成为电子商务必不可少的加密算法,同时也逐步渗透到硬件行业。芯片级DES算法生产工艺相当完备,完全可以支持底层加密需求。

DES算法的消息传递模型

先来看看DES算法的消息传递过程,如下

DES算法的消息传递过程

在这里插入图片描述
甲乙双方作为消息传递双方 (甲方作为发送方,乙方作为接收方)我们假定甲乙双方在消息传递前已商定加密算法,欲完成一次消息传递需经过如下步骤:

1)由消息传递双方约定密钥,这里由甲方构建密钥

2)由密钥构建者公布密钥,这里由甲方将密钥公布给乙方

3)由消息发送方使用密钥对数据加密,这里由甲方对数据加密

4)由消息发送方将加密数据发送给消息接收者,这里由甲方将加密数据发送给乙方

5)由消息接收方使用密钥对加密数据解密,这里由乙方完成数据解密

对称加密算法的优点就是简单易行,通俗易懂。对于上述单向消息传递而言,如果乙方想要回复甲方消息,并不需要重复步骤1、2,仅须由乙方执行步骤3、4,由甲方执行步骤5即可。

基于DES算法构建的消息传递模型大都按照上述模型构建,同时包括其他对称加密算法,如DESede、AES和IDEA等。

并不是所有基于对称加密算法的消息传递模型都按此步骤构建,PBE算法就是一个例外。

和Base64算法的消息传递模型的区别

Base64算法和DES算法消息传递模型的主要差别在于密钥的使用。

基于Base64算法的消息传递模型中没有密钥的概念。那是因为Base64字符映射表本身已经公开,而Base64字符映射表本身起到了密钥的作用。消息传递双方通讯前不需要商榷该密钥,也就省去了构建密钥、公布密钥的步骤。

一文看懂Base64算法

算法的实现

在这里插入图片描述

来看一个加密例子:

原文:        DES
密钥:        qA2oZBaKNOk=
加密后:      QwCjNM5G8KM=
解密后:      DES

随着计算机的发展,密钥长度仅有56位的DES算法显得越来越不安全,为了提高其安全强度,DES算法在设计上的漏洞已经不能通过单纯地增加密钥长度来弥补,这引发了对称加密算法研发竞赛。
DESede和AES算法正是这场竞赛中具有代表性的算法。

三重DES-DESede

作为DES算法的一种改良,DESede算法针对其密钥长度偏短和迭代次数偏少等问题做了相应改进,提高了安全强度。但这仍不是终点,DESede算法的出现仅为DES算法的改良提供了一种参考。DESede算法处理速度较慢,密钥计算时间较长,加密效率不高等问题使得对称加密算法的发展仍不容乐观。

DES算法被广大密码学机构质疑的原因主要在于DES算法的半公开性,违反了柯克霍夫原则,各大密码学结构怀疑美国国家安全局在未公开的算法实现内安置后门。

DES算法有3点安全隐患: 密钥太短、迭代偏少和半公开性。这使得淘汰DES算法成为一种必然,但要淘汰DES算法必须找到合适的替代方案。

针对密钥太短和迭代偏少问题,有人提出了多重DES的方式来克服这些缺陷。比较典型的有两重DES (2DES) 、三重DES(3DES)和四重DES (4DES)等几种形式,但在实际应用中一般采用3DES方案,它还有两个别名Triple DES和DESede。在Java中,我们通常称其为DESede算法。当然,其他两种名称在使用时同样可以获得支持。

DESede算法将密钥长度增至112位或168位,抗穷举攻击的的能力显著增强,但核心仍是DES算法,虽然通过增加迭代次数提高了安全性,但同时也造成处理速度较慢,密钥计算时间加长,加密效率不高的问题。

三重DES-DESede实现

DESede算法与DES算法实现的主要差别在于算法、密钥长度两个方面。

  • 算法: 自然不用说,这是基本差别,只是DESede还有很多别名,如TripleDES和3DES指的都是DESede算法。
  • 密钥长度:DES算法实现支持56位密钥长度,加上Bouncy Castle相应实现可以支持到64位密钥长度。DESede算法实现所支持的密钥长度支持为112位和168位。DESede算法密钥长度恰恰是DES算法密钥长度的2倍或3倍。

有关DESede算法的Java6实现与Bouncy Castle实现细节如表7-2所示。
来看看一个例子:

原文:        DESede
密钥:        N8jTp6RuZxkjJea2XVvquV5YegHQ31cV
加密后:      touXuJw8vrc=
解密后:      DESede

高级数据加密标准一AES

DES算法漏洞的发现加速了对称加密算法的改进,通过对DES算法的简单改造得到的DESede算法虽然在一定程度上提升了算法安全强度。但DESede算法低效的加密实现和较慢的处理速度仍不能满足我们对安全的要求。AES算法正是基于这些缘由而诞生。

1997年,NIST发起了征集DES替代算法一AES (AdvancedEncryption Standard,高级数据加密标准)算法的活动。1997年9月12日,NIST发布了征集算法的正式公告和具体细节,要求AES算法要比DESede算法快,至少与DESede算法样安全,具有128位的分组长度,支持128位、192位和256位的密钥长度,同时要求AES要能够在世界范围内免费使用。

1998年8月20日,NIST在“第一次AES候选大会”上公布了满足条件的15个AES的候选算法,继而又从中筛选出5个候选算法,包括MARS、RC6、Rijndael、Serpent和Twofish。

2000年10月2日,由Daemen和 Rijmen两位比利时人提出的Rijndael算法,以其密钥设置快、存储要求低,在硬件实现和限制存储的条件下性能优异当选AES算法。

经过验证,目前采用的AES算法能够有效抵御已知的针对DES算法的所有攻击方法,如部分差分攻击、相关密钥攻击等。至今,还没有AES破译的官方报道。

AES算法因密钥建立时间短、灵敏性好、内存需求低等优点,在各个领域得到广泛的研究与应用。

目前AES常用 于 UMTS (Universal MobileTelecommunications System,通用移动通信系统) 。基于SSH (Secure shell,安全外壳) 协议的一些软件也使用了AES算法,SecureCRT。

除了常用的SSH软件外,在一些无线路由器中也使用AES算法构建加密协议。

实现

在这里插入图片描述

原文:        AES
密钥:        4qrBlCmeHHyEAyoNRY2djo1HWx8LLCH2NQHG9c0ahi4=
加密后:      XhWaN6Am1T3NVSFYs1OMVg==
解密后:      AES

国际数据加密标准-IDEA

早在NIST发布征集AES算法以前,就已经有人在找寻DES算法的替代算法了。IDEA算法的提出者未像DESede算法那样在原有DES算法的基础上做改进,而是独辟蹊径地寻求了突破性解决方案。IDEA算法早于AES算法作为DES算法的可选替代算法出现。

IDEA (International Data Encryption Algorithm,国际数据加密标准)算法是由旅居瑞士的中国青年学者来学嘉和著名密码专家James Massey于1990年提出的一种对称分组密码,并于1992年修改完成

IDEA算法使用长度为128位的密钥,数据块大小为64位。

从理论上讲,IDEA属于“强”加密算法。

IDEA算法在美国之外提出并发展起来,避开了美国法律上对加密技术的诸多限制。因此,有关IDEA算法和实现技术的书籍均可自由出版和交流,极大地促进了IDEA算法的发展和完善
IDEA算法是目前较为常用的电子邮件加密算法之一。

电子邮件加密软件PGP (Pretty Good Privacy) 使用了具有商业版权的IDEA算法,实现邮件加密/解密工作。

实现

在这里插入图片描述

原文:        IDEA
密钥:        W1a1IFCKIbXKdnejfT5b2A==
加密后:      er43StU2Txk=
解密后:      IDEA

基于口令加密-PBE

前面阐述了几种常用的对称加密算法,这些算法的应用模型甚至包括实现)几乎同出一辙。但并不是所有的对称加密算法都是如此,PBE算法综合了上述对称加密算法和消息摘要算法的优势,形成了对称加密算法的一个特例。

PBE (Password Based Encryption,基于口令加密)算法是一种基于口令的加密算法,其特点在于口令由用户自己掌管,采用随机数 (这里我们叫做盐)杂凑多重加密等方法保证数据的安全性。

PBE算法没有密钥的概念,密钥在其他对称加密算法中是经过算法计算得出的,PBE算法中则使用口令替代了密钥。

密钥的长短直接影响了算法的安全性,但不方便记忆。

即便是我们将密钥通过Base64编码转换为可见字符,长密钥一样不容易记忆。因此,在这种情况下密钥是需要存储的,但是口令则不然。

比如我们程序员天天都要开关电脑,那么进入操作系统的唯一途径就是输入口令。口令是我们便于记忆的一种凭证,基于这一点,PBE算法使用口令代替了密钥。

PBE算法并没有真正构建新的加密/解密算法,而是对我们已知的对称加密算法(如DES算法)做了包装。使用PBE算法对数据做加密/解密操作时,其实是使用了DES或AES等其他对称加密算法做了相应的操作。

既然PBE算法使用了我们较为常用的对称加密算法,那就无法回避密钥的问题。口令并不能替代密钥,密钥是经过加密算法计算得出的,但口令本身不可能很长,单纯的口令很容易通过穷举攻击方式破译,这就引入了“盐””。

盐能够阻止字典攻击或预先计算的攻击,它本身是一个随机信息,相同的随机信息极不可能使用两次。将盐附加在口令上,通过消息摘要算法经过迭代计算获得构建密钥/初始化向量的基本材料,使得破译加密信息的难度加大。

PBE算法是对称加密算法的综合性算法,常见算法如PBEWithMD5AndDES,该算法使用了MD5和DES算法构建PBE算法。

基于PBE算法的消息传递模型

基于PBE算法的消息传递模型与基于DES算法的消息传递模型还是有一定差别的。

甲乙双方作为消息传递双方 (甲方作为发送方,乙方作为接收方),我们假定甲乙双方在消息传递前已商定加密算法和迭代次数,欲完成一次消息传递需经过如下步骤:

1)由消息传递双方约定口令,这里由甲方构建口令

2)由口令构建者公布口令,这里由甲方将口令公布给乙方

3)由口令构建者构建本次消息传的使用的盐,这里由甲方构建胜

4)由消息发送方使用口令、盐对数据加密,这里由甲方对数据加密

5)由消息发送方将盐、加密数据发送给消息接收者,这里由甲方将盐、加密数据发送给乙方

6)由消息接收方使用盐、口令对加密数据解密,这里由乙方完成数据解密
在这里插入图片描述

对于上述单向消息传递而言,如果乙方想要回复甲方消息,甲乙并不需要重复步骤1、2,仅仅需由乙方执行步骤3、4、5,由甲方执行步骤6即可。

当然,甲乙双方也可以在消息传递过程中传递迭代次数。

我们可以设想,“盐”本身是一种可以由消息传递双方按一定规律约定的信息,譬如时间。也可以是某个不可变物理硬件的编号,譬如U盘的自身唯一标识。

甲乙双方可以通过约定消息传递时间,并将其作为“盐”的基本信息,根据预定算法(如MD5算法)对其处理,最终获得真正的“盐”。这样一来,“盐”就无需传递,提高了安全性。

换一种思路考虑,有这样一种系统,使用者需要将U盘插入计算机,同时输入口令方能登录系统,那么U盘就是“盐”信息的提供者。即使U盘丢失,加密的信息也未必能被窃取。

从另一个角度思考"盐”与口令就像两把不可分割的钥匙

应用场景

对称加密是一种加密方式,其中使用相同的密钥进行加密和解密。常用的对称加密算法包括 DES(Data Encryption Standard)、AES(Advanced Encryption Standard)、3DES(Triple DES)、Blowfish 等。对称加密算法的主要特点是加密解密速度快,但密钥管理相对复杂。

下面是对称加密的一些常用应用场景:

  1. 数据传输保密性:
    对称加密常用于确保数据在传输过程中的保密性。通信的两端使用相同的密钥来加密和解密传输的数据,以防止未经授权的访问者能够读取或篡改数据。例如,在安全套接字层(SSL/TLS)中,对称加密算法用于保护 Web 浏览器和服务器之间的数据传输。

  2. 文件加密:
    对称加密可以用于对存储在本地计算机或云存储中的文件进行加密。用户可以使用相同的密钥来加密和解密文件,确保只有授权用户能够访问文件内容。

  3. 数据库加密:
    对称加密可以用于对数据库中的敏感数据进行加密。这可以防止未经授权的访问者在数据库被盗或泄漏时查看敏感信息。

  4. 身份验证令牌加密:
    在身份验证和授权场景中,对称加密可用于加密和验证令牌,确保只有授权的用户能够访问受保护的资源。例如,JSON Web Tokens(JWTs)可以使用对称加密算法进行签名和验证。

  5. 硬件加密:
    对称加密也常用于硬件加密设备,如智能卡、硬件安全模块(HSM)等。这些设备可以用于存储密钥并执行对称加密操作,以提供更高的安全性。

  6. 电子邮件加密:
    对称加密可以用于加密电子邮件的内容,确保只有合法的收件人能够解密和阅读电子邮件。

但是需要注意的是,密钥的安全分发和管理对系统的整体安全性至关重要。

参考

《Java加密与解密艺术》

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

启发式算法解决TSP、0/1背包和电路板问题

1. Las Vegas 题目 设计一个 Las Vegas 随机算法,求解电路板布线问题。将该算法与分支限界算法结合,观察求解效率。 代码 python代码如下: # -*- coding: utf-8 -*- """ Date : 2024/1/4 Time : 16:21 Author : …

Java爬虫获取省市区镇村5级行政区划

公司有个项目需要五级行政区划,没有现成的数据,写了一段代码,从gj统计j获取的数据。记录一下。 1.引入maven解析html <!-- jsoup --> <dependency><groupId>org.jsoup</groupId><artifactId>jsoup</artifactId><version>1.11.3&…

微信小程序自动化测试实战,支持录制回放、智能遍历

​为了满足小程序性能、功能等方面的测试需求&#xff0c;微信团队上线 小程序云测服务&#xff0c;提供丰富的自动化测试能力。其中 智能化 Monkey 服务 凭借着零代码、低成本的优势吸引不少开发者使用。 在服务使用过程中&#xff0c;我们发现开发者有更多的进阶需求&#x…

OAI openair3代码结构整理

openair3代码框架结构 OAI&#xff08;OpenAirInterface&#xff09;是一个开源的5G网络软件平台&#xff0c;用于研究和开发5G网络技术。OpenAir3是OAI项目中的一个子项目&#xff0c;专注于5G核心网络的功能实现。 一、OpenAir3的代码主要包括以下几个部分&#xff1a; NAS…

Proxmox VE 8 安装开源监控平台Centreon 23

作者&#xff1a;田逸&#xff08;formyz&#xff09; 非常好用的开源监控系统Centreon从版本号21.40以后&#xff08;包括Centreon 21.40这个版本&#xff09;&#xff0c;不在提供ISO一键式安装包&#xff0c;取而代之的是在线脚本安装和VMware虚拟机或者Oracle VirtualBox 虚…

初识MySQL

一、什么是数据库 数据库&#xff08;Database&#xff0c;简称DB&#xff09;&#xff1a;长期存放在计算机内&#xff0c;有组织、可共享的大量数据的集合&#xff0c;是一个数据“仓库”。 数据库的作用&#xff1a; 可以结构化存储大量的数据&#xff0c;方便检索和访问…

2024最新Java基础面试题大全(一)

1、String可以被继承&#xff1f; 不能被继承&#xff0c;因为String类有final修饰符&#xff0c;而final修饰的类是不能被继承的。 public final class String implements java.io.Serializable, Comparable<String>, CharSequence {// 省略...  }2、常见集合类 Java…

ChatGPT到底能做什么呢?

1、熟练掌握ChatGPT提示词技巧及各种应用方法&#xff0c;并成为工作中的助手。 2、通过案例掌握ChatGPT撰写、修改论文及工作报告&#xff0c;提供写作能力及优化工作 3、熟练掌握ChatGPT融合相关插件的应用&#xff0c;完成数据分析、编程以及深度学习等相关科研项目。 4、…

深入理解Vue3中的自定义指令

Vue3是一个流行的前端框架&#xff0c;它引入了许多新特性和改进&#xff0c;其中之一是自定义指令。自定义指令是一种强大的功能&#xff0c;可以让开发者在模板中直接操作 DOM 元素。本文将深入探讨 Vue3中的自定义指令&#xff0c;包括自定义指令的基本用法、生命周期钩子函…

【fiddler】fiddler抓包工具的使用

前言&#xff1a;我们可以通过fiddler软件&#xff0c;捕获到http请求&#xff0c;并修改请求参数 修改返回内容 fiddler下载,官网如下图 启动fiddler软件,点击file 选择 Capture Traffic 修改入参 (我们以谷歌浏览器发起请求为例) 此时会出现一个向上的箭头&#xff0c;点击…

MediaPipeUnityPlugin Win10环境搭建(22年3月的记录,新版本已完全不同,这里只做记录)

https://github.com/homuler/MediaPipeUnityPlugin You cannot build libraries for Android with the following steps. 1、安装msys2配置系统环境变量Path添加 C:\msys64\usr\bin 执行 pacman -Su 执行 pacman -S git patch unzip 2、安装Python3.9.10 勾选系统环境变量 …

stm32学习总结:6、Proteus8+STM32CubeMX+MDK仿真蜂鸣器及ADC读取电压(Proteus标签整理原理图)

stm32学习总结&#xff1a;6、Proteus8STM32CubeMXMDK仿真蜂鸣器及ADC读取电压&#xff08;Proteus标签整理原理图&#xff09; 文章目录 stm32学习总结&#xff1a;6、Proteus8STM32CubeMXMDK仿真蜂鸣器及ADC读取电压&#xff08;Proteus标签整理原理图&#xff09;一、前言二…

智能革命:揭秘AI如何重塑创新与效率的未来

1.AI技术的发展与应用 1.1 AI技术的发展 人工智能&#xff08;AI&#xff09;的概念最早可以追溯到20世纪40年代和50年代&#xff0c;当时的计算机科学家开始探索如何创建能模仿人类智能的机器。最初的AI研究集中在问题解决和符号逻辑上&#xff0c;但随着时间的推移&#xf…

若依前后端分离版关联字典值查询数据工具类使用

场景 若依管理系统导出Excel时添加没有的列和关联码表显示中文进行导出&#xff1a; 若依管理系统导出Excel时添加没有的列和关联码表显示中文进行导出_若依的导出添加额外的字段信息-CSDN博客 上面通过关联表的方式实现查询字典值&#xff0c;若依本身提供了查询redis中缓存…

透明OLED屏的稳定性:从技术角度及应用案例解析

在显示技术日新月异的今天&#xff0c;透明OLED屏以其独特的透明特性和出色的显示效果&#xff0c;吸引了众多关注。然而&#xff0c;对于这种新型技术的稳定性&#xff0c;人们难免会有所疑虑。作为一名专注于OLED技术研发的工程师&#xff0c;尼伽小编将从专业角度出发&#…

阿里云大模型「让照片跳舞」刷屏朋友圈,有哪些信息值得关注?

介绍 大家好&#xff0c;我分享聊聊阿里通义千问APP中全民舞王功能。 网络热舞结合AI视频&#xff0c;这是以后不用学习跳舞&#xff1f; 可以尝试下效果&#xff0c;一张图片生成视频。 APP快速使用 搜索下载通义千问APP 打开APP&#xff0c;选中一张照片来跳舞。 这里…

css单位介绍

当我们在编写网页或应用程序时&#xff0c;选择合适的单位来描述元素的尺寸是非常重要的。在CSS中&#xff0c;我们常常会使用像素(px)、相对像素(rpx)、字号单位(em)、根元素字号单位(rem)、百分比(%)和视口百分比(vh、vw)等单位来描述元素的大小。 像素(px)是最常见的单位&a…

Unity中Shader序列帧动画(U、V方向的走格)

文章目录 前言一、U方向的走格1、 要实现移动的效果&#xff0c;我们就会想到使用_Time2、使用floor向下取整3、把x、y缩小为原函数的 Column倍4、使用_Sequence的z控制帧动画U方向上的速度 二、U方向的走格三、最终效果1、亚丝娜2、小蓝帽3、火4、最终代码 前言 在上一篇文章…

没有一家车企能绕开「数据闭环」

作者 |张祥威 编辑 |德新 2023年&#xff0c;在比亚迪那次公布智驾数据规模后&#xff0c;智能化下半场的战斗就正式打响了。 如今&#xff0c;自动驾驶正在沿着特斯拉提出的「BEVTransformer」急速推进&#xff0c;这条技术路线短短几年就得到了验证&#xff0c;随着智驾起较…

软件测试|弄懂GROUP BY看这一篇文章就够了

简介 在SQL&#xff08;结构化查询语言&#xff09;中&#xff0c;GROUP BY子句是一个强大的工具&#xff0c;用于对查询结果进行分组和聚合操作。通过使用GROUP BY子句&#xff0c;可以根据指定的列或表达式对数据进行分组&#xff0c;并对每个分组应用聚合函数&#xff0c;从…