【网络安全】身份认证
1. 身份认证
1.1 定义
身份认证(Authentication)是确认用户身份的过程,确保只有授权的用户才能访问系统或资源。它通常涉及验证用户提供的凭证,如密码、生物特征或其他识别标志。
1.2 重要性
身份认证是信息安全的第一道防线,对于保护数据不被未授权访问至关重要。在数字化时代,随着个人信息和企业数据的价值日益增加,身份认证成为防止数据泄露、网络欺诈和其他安全威胁的关键措施。
1.3 应用场景
身份认证广泛应用于多个领域:
- 个人应用:银行在线服务、电子邮件、社交媒体等要求个人用户提供密码或其他身份验证信息以确保账户安全。
- 企业应用:企业内部系统、VPN远程访问、企业资源规划(ERP)系统等,通过身份认证确保只有授权员工才能访问敏感数据。
- 政府服务:电子政务平台、社会保障系统等,通过身份认证确保服务的安全性和公民信息的保护。
- 在线交易:电子商务网站、在线支付平台等,通过身份认证防止欺诈交易和保护消费者财务信息。
根据《国家网络身份认证公共服务管理办法(征求意见稿)》,网号和网证作为新型的网络身份认证方式,旨在提供更安全、便捷的身份验证服务,减少个人信息泄露风险,推动数字经济的发展。
2. 传统身份认证技术
2.1 口令与密码
口令和密码是最常见的身份认证方法,用户通过输入预先设定的密码来证明身份。尽管这种方法易于实施和使用,但它也存在一些明显的弱点。
- 安全性问题:许多用户为了便于记忆,会选择容易猜测的密码,如生日、电话号码等,这增加了密码被破解的风险。
- 存储和传输风险:静态密码在存储和网络传输过程中可能被木马程序或中间人攻击截获。
- 改进措施:为了提高安全性,推荐使用复杂密码,并定期更换。同时,采用多因素认证可以增加安全性。
据统计,约70%的网络入侵事件是通过弱密码实现的。因此,强化密码策略和实施定期密码更换是提高系统安全性的有效手段。
2.2 智能卡
智能卡是一种内置集成电路的芯片卡,用于存储与用户身份相关的数据。智能卡通常由专门的厂商生产,具有不可复制的硬件特性。
- 安全性:智能卡认证通过硬件不可复制性来保证用户身份的安全,但每次读取的数据是静态的,仍存在被截取的风险。
- 应用:智能卡被广泛应用于银行、交通和政府服务等领域,如SIM卡、交通卡和电子护照。
- 技术发展:随着技术的发展,智能卡现在具备了更多的功能,如存储加密数据和执行复杂的认证协议。
据市场研究数据显示,全球智能卡市场的年复合增长率预计为12.5%,这表明智能卡技术在全球范围内正得到广泛应用。
2.3 令牌
令牌是一种物理设备,用于生成或显示一次性密码,通常与静态密码结合使用,以实现双因素认证。
- 动态口令牌:基于时间同步的动态口令牌每60秒变换一次密码,而基于事件同步的令牌则在用户进行特定操作时生成密码。
- 安全性:动态口令牌提供了比静态密码更高的安全性,因为每次生成的密码只能使用一次。
- 应用场景:令牌被广泛应用于网上银行、企业VPN和政府安全系统等,以提供额外的安全层。
一项针对企业用户的调查显示,超过85%的企业采用双因素认证来保护敏感数据和系统访问,其中令牌是最受欢迎的双因素认证方法之一。
3. 生物特征身份认证
3.1 指纹识别
指纹识别技术作为生物特征身份认证的一种,因其便捷性和准确性而被广泛应用于各个领域。
- 技术原理:指纹识别技术通过分析手指表面的脊线和谷线图案来识别个体。每个人的指纹图案都是独一无二的,这为身份认证提供了可靠的基础。
- 应用普及率:据统计,全球超过60%的智能手机配备了指纹识别功能,而在企业级应用中,指纹识别技术也被广泛应用于门禁系统和考勤系统。
- 安全性:尽管指纹识别技术相对安全,但仍然存在被复制的风险。例如,有报道称通过高分辨率的指纹照片可以制作出假指纹膜,从而绕过认证系统。
- 市场趋势:随着技术的不断进步,指纹识别技术正朝着更加智能化和集成化的方向发展。例如,通过深度学习算法提高指纹识别的准确性和速度。
3.2 虹膜识别
虹膜识别技术是基于眼睛虹膜的唯一性进行身份认证的一种方式。
- 技术优势:虹膜识别被认为是目前最精确的生物识别技术之一,其误识率远低于指纹识别和面部识别。虹膜的唯一性由遗传基因决定,且不受外界环境影响。
- 应用场景:虹膜识别技术被广泛应用于高安全级别的场合,如边境控制、高端安全系统和金融服务等。
- 挑战:虹膜识别技术面临的挑战包括设备成本较高、用户接受度较低以及对特殊人群(如佩戴眼镜或隐形眼镜的用户)的适应性问题。
- 发展动态:随着技术的发展,虹膜识别设备正变得越来越小型化和成本效益化,预计未来将在更多领域得到应用。
3.3 面部识别
面部识别技术通过分析个人的面部特征来进行身份认证。
- 技术发展:面部识别技术近年来得到了快速发展,尤其是在深度学习算法的推动下,识别准确性得到了显著提升。
- 应用广泛性:面部识别技术被广泛应用于社交媒体、手机解锁、安防监控等领域。例如,Facebook使用面部识别技术来自动识别照片中的人物。
- 隐私问题:面部识别技术也引发了广泛的隐私和伦理争议。一些国家和地区已经开始制定法律法规来限制面部识别技术的使用,以保护公民的隐私权。
- 未来展望:预计未来面部识别技术将在提高识别准确性的同时,更加注重用户隐私的保护。同时,技术的小型化和集成化也将推动其在更多领域的应用。
4. 双因素与多因素认证
4.1 双因素认证方法
双因素认证(2FA)是一种安全实践,要求用户提供两种不同形式的身份验证,以确保账户的安全性。这种方法通常结合了静态密码和动态生成的一次性密码(OTP)。
- 静态密码:用户创建的密码,通常与用户名结合使用,作为身份验证的第一步。
- 动态OTP:通过短信、电子邮件、手机应用或硬件令牌生成的一次性密码,作为第二因素,增加了额外的安全层。
4.1.1 常见的2FA方法
- 短信验证码:向用户的手机发送一次性密码,用户在登录时输入该验证码。
- 电子邮件验证码:与短信验证码类似,但验证码通过电子邮件发送。
- 手机应用生成的OTP:使用如Google Authenticator或Authy等应用生成的动态密码。
- 硬件令牌:物理设备,如YubiKey,生成一次性密码或提供USB接口进行身份验证。
- 推送通知:通过专用的认证应用程序向用户的手机发送推送通知,用户确认登录请求。
4.1.2 2FA的优势与挑战
- 优势:2FA显著提高了账户的安全性,因为即使密码被泄露,没有第二因素也无法访问账户。
- 挑战:用户可能觉得额外的步骤繁琐,而且如果用户失去第二因素(如手机丢失),可能会暂时无法访问账户。
4.2 多因素认证优势
多因素认证(MFA)是2FA的扩展,要求用户提供两个或更多不同形式的身份验证。
- 增强安全性:MFA通过要求多个身份验证因素,增加了攻击者需要克服的障碍。
- 合规性:许多行业标准和法规要求使用MFA,特别是在处理敏感数据时。
- 灵活性:MFA允许用户选择最适合他们需求的身份验证方法。
4.2.1 MFA的实施
- 生物特征认证:如指纹、面部识别或声纹,提供高安全性和用户友好性。
- 行为生物识别:分析用户的行为模式,如键盘打字节奏或鼠标使用模式。
- 地理位置识别:根据用户设备的GPS位置进行身份验证。
4.2.2 MFA的优势
- 减少欺诈:MFA显著降低了账户被盗用的风险。
- 提高用户信任:用户对使用MFA的服务感到更安全,从而增加了用户的信任和满意度。
4.3 实施挑战
尽管MFA提供了显著的安全优势,但在实施过程中也面临一些挑战。
- 用户接受度:用户可能对额外的安全步骤感到不满,尤其是如果这些步骤复杂或频繁失败。
- 成本:实施MFA可能需要额外的硬件、软件和培训投资。
- 管理复杂性:随着身份验证因素的增加,管理和监控这些因素变得更加复杂。
4.3.1 解决方案
- 用户教育:教育用户了解MFA的重要性和使用方法,提高用户接受度。
- 简化流程:设计简单直观的MFA流程,减少用户的操作难度。
- 自动化和集成:使用自动化工具和集成解决方案来降低管理复杂性。
通过这些措施,组织可以克服实施MFA的挑战,同时享受其带来的安全优势。
5. 新型身份认证技术
5.1 基于人工智能的身份认证
基于人工智能(AI)的身份认证技术通过大数据分析和机器学习算法,提高了身份认证的准确性和安全性。AI技术能够识别和适应用户的行为模式,从而提供更加个性化和动态的安全验证。
5.1.1 技术原理
- 行为生物识别:AI系统通过分析用户的行为特征,如鼠标移动模式、键盘敲击节奏和移动设备的握持方式,来识别用户身份。
- 自适应认证:AI技术能够根据用户的行为和环境因素(如时间、地点、设备等)动态调整认证的安全级别。
- 深度学习:利用深度学习算法对大量数据进行分析,以提高对用户身份的识别准确性。
5.1.2 应用案例
- 金融服务:银行和金融机构使用AI技术进行交易监控和欺诈检测,通过分析用户的交易行为模式来识别异常活动。
- 智能设备:智能手机和智能家居设备通过用户的行为习惯来自动调整安全设置,如自动锁定和解锁。
- 网络安全:企业使用AI技术来增强网络安全,通过实时监控和分析网络流量来识别和阻止潜在的攻击。
5.1.3 优势与挑战
- 优势:AI技术能够提供更加精准和动态的身份认证,减少误报和漏报,提高用户体验。
- 挑战:AI系统的准确性依赖于大量的训练数据,且需要不断更新以适应用户行为的变化。此外,AI系统的决策过程可能不够透明,引发用户对隐私的担忧。
5.2 区块链数字身份认证
区块链数字身份认证(DID)是一种基于区块链技术的去中心化身份认证方法,它允许用户控制自己的身份信息,并在不同的服务和应用中安全地共享这些信息。
5.2.1 技术原理
- 去中心化:DID不依赖于中心化的权威机构,而是通过区块链技术实现身份信息的分布式存储和验证。
- 不可篡改:区块链的不可篡改性质保证了身份信息的安全性和真实性。
- 隐私保护:用户可以选择性地披露身份信息,而不必泄露全部个人信息。
5.2.2 应用案例
- 政务服务:政府机构使用DID来提供更安全、高效的电子政务服务,如电子投票和许可证申请。
- 金融服务:银行和保险公司使用DID来验证客户身份,简化KYC流程,提高客户体验。
- 供应链管理:企业使用DID来确保供应链中商品的来源和真实性,提高供应链的透明度和信任度。
5.2.3 优势与挑战
- 优势:DID提供了一种安全、可验证且用户可控的身份认证方式,有助于减少身份盗窃和数据泄露的风险。
- 挑战:DID的普及需要跨行业和跨领域的合作,以及相应的法律和监管框架的支持。此外,用户对区块链技术的理解和接受度也是推广DID的挑战之一。
5.3 无密码身份认证
无密码身份认证是一种不依赖于传统密码的身份验证方法,它通过其他认证因素(如生物特征、设备认证或行为分析)来验证用户身份。
5.3.1 技术原理
- 生物特征认证:使用指纹、面部识别、虹膜扫描等生物特征进行身份验证。
- 设备认证:通过分析设备的唯一属性(如硬件ID、操作系统版本等)来识别用户。
- 行为分析:分析用户的行为模式,如键盘敲击节奏、鼠标移动模式等。
5.3.2 应用案例
- 移动设备:智能手机和平板电脑通过指纹识别或面部识别来解锁。
- 企业系统:企业内部系统通过员工的设备认证和行为分析来增强访问控制。
- 在线服务:在线服务提供商通过用户的生物特征和设备信息来提供无密码登录选项。
5.3.3 优势与挑战
- 优势:无密码身份认证提供了一种更便捷、更安全的身份验证方式,减少了密码管理的负担和密码泄露的风险。
- 挑战:无密码身份认证的实施需要硬件和软件的支持,且需要用户对新技术的接受和适应。此外,生物特征数据的存储和保护也是需要解决的问题。
6. 安全性与挑战
6.1 安全威胁
身份认证系统面临着多种安全威胁,这些威胁不断演变,对个人隐私和数据安全构成挑战。
- 社会工程学攻击:攻击者通过欺骗手段获取用户的敏感信息,如密码或身份验证令牌。据安全研究数据显示,约95%的安全漏洞与人为因素有关。
- 中间人攻击:攻击者截获并篡改用户与服务器之间的通信,以窃取身份信息。在不使用加密或验证措施的网络中,这种攻击尤为常见。
- 暴力破解:攻击者尝试通过自动化工具不断尝试不同的密码组合,以破解账户。随着计算能力的增强,这种攻击方式的威胁日益增大。
- 生物特征数据泄露:生物特征数据的泄露可能导致用户身份信息的长期风险,因为生物特征是不可更改的。
6.2 防护措施
为了应对上述安全威胁,采取了一系列的防护措施。
- 多因素认证:结合两种或以上的身份验证方法,如密码和生物特征,显著提高了安全性。
- 加密技术:使用强加密算法保护存储和传输中的数据,防止数据泄露和篡改。
- 安全协议:实施安全通信协议,如TLS/SSL,确保数据传输的安全性和完整性。
- 行为分析:通过分析用户的行为模式,识别异常行为,及时阻止潜在的攻击。
- 定期安全审计:定期进行系统和网络的安全审计,发现并修复安全漏洞。
6.3 隐私保护
在加强身份认证安全性的同时,隐私保护也是一个不可忽视的重要方面。
- 数据最小化:只收集实现目的所必需的个人信息,减少数据泄露的风险。
- 匿名化处理:对敏感数据进行匿名化处理,确保在处理过程中无法识别个人身份。
- 用户控制权:允许用户访问、更正和删除其个人信息,增强用户对自己数据的控制权。
- 法律遵从:遵守相关的数据保护法规,如欧盟的通用数据保护条例(GDPR),确保数据处理的合法性。
- 透明度:向用户清晰地说明数据收集、使用和共享的政策,提高用户对隐私保护措施的信任。
通过这些措施,可以在保护用户身份信息安全的同时,也保护用户的隐私权益。
7. 身份认证的未来趋势
7.1 技术创新
随着技术的不断进步,身份认证领域也在不断迎来创新。以下是一些未来可能主导身份认证技术发展的关键趋势:
-
无密码身份认证:随着用户对便捷性需求的增加,无密码身份认证技术如生物识别和行为分析将变得更加普及。预计到2029年,无密码身份认证市场规模将达到数十亿美元。
-
基于行为的身份识别技术:通过分析用户的行为模式来进行身份验证,如打字节奏、鼠标移动轨迹等,这种技术可以提供更为隐蔽和难以伪造的身份验证方式。
-
社交媒体授权登录:用户可以使用社交媒体账户登录各种服务,这种趋势预计将随着社交媒体平台的进一步普及而增长。
-
去中心化身份验证:利用区块链技术,用户可以拥有并控制自己的身份信息,实现跨平台和服务的互操作性。
-
自适应身份验证:根据用户的行为、位置、设备等信息动态调整身份验证的强度,实现安全性与用户体验的最佳平衡。
-
身份威胁检测和响应(ITDR)技术:通过实时监控和分析用户行为,及时发现并响应潜在的安全威胁。
-
零信任身份验证理念:不再默认信任任何用户或设备,而是持续验证身份并实施严格的访问控制。
-
保护隐私的身份验证:在不损害用户个人隐私的前提下进行身份验证,如零知识证明、同态加密等技术。
-
新一代多因素身份验证技术:集成生物识别技术、基于位置的身份验证、基于时间的一次性密码(TOTP)和自适应MFA等。
-
统一认证和单点登录(SSO):通过统一认证和SSO,用户可以在多个应用和服务中实现无缝访问,提高效率。
7.2 用户体验优化
身份认证技术的发展不仅要注重安全性,也要关注用户体验的优化:
-
简化认证流程:通过减少用户在认证过程中需要执行的步骤,提高用户满意度。
-
个性化认证策略:根据不同用户的需求和风险水平,提供定制化的认证策略。
-
跨平台身份一致性:确保用户在不同设备和平台上的认证体验保持一致。
-
多因素认证的用户体验:提供易于使用的多因素认证选项,如通过手机应用快速验证。
-
自适应认证的用户体验:根据用户的行为和环境自动调整认证要求,减少对用户的干扰。
7.3 安全与便捷平衡
未来的身份认证技术将更加注重安全与便捷的平衡:
-
安全策略的灵活性:在确保安全的同时,提供灵活的安全策略,以适应不同用户的需求。
-
用户教育和培训:通过教育用户如何安全地使用身份认证技术,提高用户的安全意识。
-
技术整合:将多种身份认证技术整合到一个平台中,简化管理并提高效率。
-
持续的安全评估:定期评估和更新安全措施,以应对不断变化的威胁。
-
用户反馈的利用:通过收集和分析用户反馈,不断优化身份认证流程,以提高用户满意度和安全性。
通过这些趋势,身份认证技术将继续发展,以满足日益复杂的安全需求和用户对便捷性的追求。
相关文章:

【网络安全】身份认证
1. 身份认证 1.1 定义 身份认证(Authentication)是确认用户身份的过程,确保只有授权的用户才能访问系统或资源。它通常涉及验证用户提供的凭证,如密码、生物特征或其他识别标志。 1.2 重要性 身份认证是信息安全的第一道防线&…...

LeetCode - #124 二叉树中的最大路径和(Top 100)
文章目录 前言1. 描述2. 示例3. 答案关于我们前言 本题为 LeetCode 前 100 高频题 我们社区陆续会将顾毅(Netflix 增长黑客,《iOS 面试之道》作者,ACE 职业健身教练。)的 Swift 算法题题解整理为文字版以方便大家学习与阅读。 LeetCode 算法到目前我们已经更新到 123 期…...

Java:插入排序
目录 排序的概念 插入排序 直接插入排序 哈希排序 排序的概念 排序:所谓的排序,就是使一串记录,按照某个或某些关键字的大小,递增或递减的排列起来的操作。 稳定性:假定在待排序的记录序列中,存在多个…...

How FAR ARE WE FROM AGI?(ICLR AGI Workshop 2024)概览
关注B站可以观看更多实战教学视频:hallo128的个人空间 How FAR ARE WE FROM AGI?官网 How FAR ARE WE FROM AGI?(ICLR AGI Workshop 2024) 该研讨会将于2024年5月11日在奥地利维也纳以混合模式举行,作为 ICLR 2024年会议的一部…...

leetcode刷题day33|动态规划Part02(62.不同路径、63. 不同路径 II、 343.整数拆分、96.不同的二叉搜索树)
62.不同路径 机器人从(0 , 0) 位置出发,到(m - 1, n - 1)终点。 动规五部曲 1、确定dp数组(dp table)以及下标的含义 dp[i][j] :表示从(0 ,0)出发,到(i, j) 有dp[i][j]条不同的路…...

基于Python大数据的B站热门视频的数据分析及可视化系统
作者:计算机学姐 开发技术:SpringBoot、SSM、Vue、MySQL、JSP、ElementUI、Python、小程序等,“文末源码”。 专栏推荐:前后端分离项目源码、SpringBoot项目源码、Vue项目源码、SSM项目源码 精品专栏:Java精选实战项目…...

matlab-批处理图像质量变化并形成折线图 (PSNR)
%修改路径就能用,图片分辨率要一致 %clc;clear all;close all;tic;%清理内存 file_pathE:\test\resources\image\;% 批量图像所在的文件夹下 file_save_pathE:\test\resources\SaveImage\;% 要存储的地址 img_path_listdir(strcat(file_path,*.jpg));% 获取批量bm…...

[Doc][Ros2]ros2中Qos(Quality of Service,服务质量)介绍
在 ROS 2 中,QoS(Quality of Service,服务质量)是用于控制节点之间消息传递的可靠性、历史存储和数据持久性等方面的机制。通过 QoS 设置,用户可以更细粒度地控制消息传递的行为,确保在不同网络环境或应用场景中满足特定的通信需求。 几个常用的包: QoSProfile: 含义…...

SpringBoot日志集成-LogBack
Log4J:最早的Java日志框架之一,由Apache基金会发起,提供灵活而强大的日志记录机制JDK自带的日志框架:java.util.logging.Logg,是JDK1.4之后提供的日志API,已淘汰logback: logback一个开源的日志…...

Google BigTable架构详解
文章目录 什么是BigTable?架构图一、整体架构二、数据存储与索引存储模型 三、数据拆分与存储四、元数据管理五、读写流程 其他内容概览负载平衡其他存储和数据库选项 什么是BigTable? Bigtable是Google开发的一个高性能、可扩展的分布式存储系统,用于管理大规模…...

【python】如何切换ipynb的kernel至指定conda环境
需求介绍 打开(若无新建环境) 环境 conda env list conda activate cvml conda install ipykernel python -m ipykernel install --name cvml 以上完成后,打开jupyter 创建一个python文件 在kernel——>change kernel——>python[conda env:cvml] 参考资料…...

Linux【基础指令汇总】
目录 Linux命令的特点 1、文件管理 ls命令 cp命令 mkdir命令 mv命令 pwd命令 2、文档编辑 cat命令 echo命令 rm命令 tail命令 rmdir命令 3、系统管理 rpm命令 find命令 startx命令 uname命令 vmstat命令 4、磁盘管理 df命令 fdisk命令 lsblk命令 hdpar…...

SpringCloud-EurekaClient
创建Module pom.xml <dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-netflix-eureka-client</artifactId></dependency> spring:application:name: provider # 应用程序的名称,…...

配置Scrapy项目
配置Scrapy项目是一个涉及多个步骤的过程,在上一篇博客中已经写了安装Scrapy、创建Scrapy项目的步骤。 接下来应该定义Item类、编写爬虫程序以及配置settings.py文件等。以下是一个详细的配置Scrapy项目的步骤: 一、定义Item类 在项目目录下…...

航顺芯片HK32MCU受邀出席汽车芯片国产化与技术创新闭门研讨会
[中国,北京,2024年9月21日]近日,深圳市航顺芯片技术研发有限公司(以下简称“航顺芯片”)产品总监郑增忠受邀出席由中国设备管理协会新能源汽车产业发展促进中心主办的“汽车芯片国产化与技术创新闭门研讨会”。 会上航…...

【深度学习】(6)--图像数据增强
文章目录 图像数据增强一、作用二、增强方法三、代码体现四、增强体现 总结 图像数据增强 数据增强(Data Augmentation),也称为数据增广,是一种在机器学习和深度学习中常用的技术,它通过对现有数据进行各种变换和处理…...

Vscode 远程切换Python虚拟环境
在VSCode中远程切换Python虚拟环境是一个涉及多个步骤的过程,包括安装必要的扩展、连接到远程服务器、创建或激活虚拟环境,并在VSCode中选择相应的Python解释器。以下是一个详细的步骤指南,包括代码示例,旨在帮助我们完成这一过程…...

Sqoop面试整理
Sqoop(SQL-to-Hadoop)是一个用于在Hadoop和关系型数据库之间传输数据的工具。以下是一些可能在Sqoop面试中会被问到的问题及其答案: 1. 什么是Sqoop?为什么使用它? 回答: Sqoop是一个用来在Hadoop和关系型数据库(如MySQL、Oracle、PostgreSQL等)之间高效传输大数据的工具…...

PyCharm 的安装和配置
环境要求: OS:Windows / macOS / Linux (此处使用 Windows 10 进行演示)Python:包括但不限于 Anaconda,miniconda,Python。在 Windows 下只要能找到 python.exe 即可 Download 进入 PyCharm 官网,选择对…...

【工具类:FastJsonRedisSerializer】
工具类:FastJsonRedisSerializer 依赖yml文件FastJsonRedisSerializer.java 依赖 <!-- 主要用于处理 JSON 数据的序列化和反序列化--><!-- 序列化:将对象转换为一种可以存储或传输的格式(如 JSON、XML、二进制等)…...

Spring Cloud Alibaba-(6)Spring Cloud Gateway【网关】
Spring Cloud Alibaba-(1)搭建项目环境 Spring Cloud Alibaba-(2)Nacos【服务注册与发现、配置管理】 Spring Cloud Alibaba-(3)OpenFeign【服务调用】 Spring Cloud Alibaba-(4)Sen…...

芯科科技2024年Works With开发者大会登陆上海,物联网和人工智能的变革性融合带来无限精彩
谷歌、三星等生态大厂将带来重磅演讲和圆桌讨论,亦可切身体验多样化无线技术实作 中国,北京 – 2024年9月25日 – 安全、智能无线连接技术领域的全球领导厂商Silicon Labs(亦称“芯科科技”,NASDAQ:SLAB)&a…...

华为OD机试 - 匿名信(Python/JS/C/C++ 2024 E卷 100分)
华为OD机试 2024E卷题库疯狂收录中,刷题点这里 专栏导读 本专栏收录于《华为OD机试真题(Python/JS/C/C)》。 刷的越多,抽中的概率越大,私信哪吒,备注华为OD,加入华为OD刷题交流群,…...

Python习题 208:将二维列表数组转置
(编码)将以一下二维列表类型的数组 matrix 进行转置(注:不能用内置标准库及三方库)。 matrix = [ [1, 2, 3], [4, 5, 6], [7, 8, 9] ] 转置结果 [[1, 4, 7], [2, 5, 8], [3, 6, 9]] matrix = [[1, 2, 3],[4...
STM32F407HAL库输出互补PWM波以及死区时间计算
互补PWM波配置 STM32F407VET6的高级定时器TIM1、TIM8可以生成互补的PWM波,用HAL库配置非常方便。 我们使用高级定时器TIM1,选择一个通道(我这里选择通道二),然后选择PWM Generation CH2 CH2N。这里N的意思是互补&…...

matlab-对比两张图片的RGB分量的差值并形成直方图
%对比两张图片的RGB分量的差值并形成直方图,改个路径就能用,图片分辨率要一致 close all; clear all; clc; I1imread(E:\test\resources\image\1.jpg); I2imread(E:\test\resources\image\2.jpg); R1I1(:,:,1); G1I1(:,:,2); B1I1(:,:,3); R2I2(:,:,1…...

SpringBoot集成Matlab软件实战
在项目中处理矩阵等复杂数据结构的时候,可以用Matlab程序来运行,其优点是很多的。 专用工具箱和强大的矩阵运算能力:MATLAB 拥有强大的数学工具箱和优化工具箱,适合处理大规模矩阵运算以及水文模型的率定。MATLAB 的 Optimization…...

Java---异常及处理
一.异常 1.概念 程序的非正常执行。高级语言都有异常处理机制(C,Java) 2.一般处理异常的方法 Scanner sc new Scanner(System.in);System.out.println("请输入一个数字:");String s sc.nextLine();if (s.matches("[0-9]&qu…...

【开源免费】基于SpringBoot+Vue.JS网上购物商城(JAVA毕业设计)
本文项目编号 T 041 ,文末自助获取源码 \color{red}{T041,文末自助获取源码} T041,文末自助获取源码 目录 一、系统介绍二、演示录屏三、启动教程四、功能截图五、文案资料5.1 选题背景5.2 国内外研究现状5.3 可行性分析5.4 用例设计 六、核…...

添加vscode插件C/C++ snippets,快速生成LVGL .c/.h文件模版
文章目录 一、安装插件二、在安装目录下添加c.json和cpp.json文件①在 C:/Users/yourname/AppData/Roaming/Code/User/snippets/ 目录下创建 c.json 并填入如下内容:②在 C:/Users/yourname/AppData/Roaming/Code/User/snippets/ 目录下创建 cpp.json 并填入如下内容…...