浅谈云计算07 | 云安全机制

news2025/1/14 5:46:52

浅谈云计算安全机制:全方位守护云端世界

    • 一、引言
    • 二、加密技术:数据的隐形护盾
    • 三、散列机制:数据完整性的忠诚卫士
    • 四、数字签名:数据来源与真伪的鉴定专家
    • 五、公钥基础设施(PKI):信任的基石
    • 六、身份与访问管理(IAM):云端的门禁系统
    • 七、单点登录机制(SSO):便捷与安全的完美融合
    • 八、基于云的安全组:网络流量的红绿灯
    • 九、强化的虚拟服务器映像:安全启动的源头保障

在这里插入图片描述

一、引言

在当今数字化时代,云计算已成为企业和个人存储、处理数据以及运行应用程序的重要方式。然而,随着云服务的广泛应用,云安全问题日益凸显。云安全涉及到保护云环境中的数据、应用程序和基础设施免受各种潜在威胁,如数据泄露、恶意攻击、权限滥用等。为了应对这些挑战,一系列云安全机制应运而生,它们如同坚固的盾牌,守护着云端的世界。本文将深入探讨云安全的八大核心机制,包括加密、散列机制、数字签名、公钥基础设施、身份与访问管理(IAM)、单点登录机制(SSO)、基于云的安全组以及强化的虚拟服务器映像,揭示它们如何协同工作,为云服务保驾护航。

在这里插入图片描述

二、加密技术:数据的隐形护盾

加密技术是云安全的基石,它通过特定算法将数据转化为密文形式,使得未经授权的第三方无法理解数据内容,从而保障数据的机密性。在云计算环境中,数据面临着在传输和存储过程中被窃取的风险,加密技术就如同给数据穿上了一层隐形的铠甲,抵御潜在的威胁。
在这里插入图片描述

加密技术主要分为对称加密和非对称加密两大类。对称加密算法使用相同的密钥进行加密和解密操作,其优势在于加密和解密速度极快,能够高效处理大量数据,适合对云端存储的海量数据进行批量加密。例如,常见的 AES(高级加密标准)算法,它以 128 位、192 位或 256 位的密钥对数据分组进行加密,通过字节替换、行移位、列混合和轮密钥加等多轮复杂操作,将明文转换为密文。在云存储服务中,如 Amazon S3、Google Cloud Storage 等,就广泛采用 AES 算法对用户数据进行静态存储加密,确保数据在云端硬盘上的安全性。然而,对称加密的密钥管理是个难题,因为同一密钥既用于加密又用于解密,一旦密钥泄露,数据就会完全暴露。

非对称加密算法则引入了公钥和私钥的概念,公钥可以公开,用于加密数据,而私钥由所有者保密,用于解密数据。这种方式巧妙地解决了密钥分发的安全性问题,常用于数据传输加密以及用户认证场景。以 RSA 算法为例,它基于大整数分解难题,生成一对密钥。当用户 A 向用户 B 传输敏感数据时,用户 A 使用用户 B 公开的公钥对数据进行加密,加密后的数据只有用户 B 使用其私钥才能解密,即使数据在传输过程中被截取,第三方也无法破解。像在一些云服务的登录认证环节,用户输入的密码会通过客户端使用服务器公钥加密后传输,服务器端再用私钥解密验证,有效防止密码在网络传输中被窃取。

在实际的云应用中,常常会结合使用对称加密和非对称加密,形成混合加密模式。首先利用非对称加密的安全性来安全地交换对称加密所需的密钥,随后使用对称加密快速处理大量数据,兼顾了安全性与效率。例如,在企业将内部数据迁移到云存储时,先通过 RSA 算法传递 AES 加密的密钥,后续数据则由 AES 算法高效加密存储,全方位保障数据在云端的安全。

三、散列机制:数据完整性的忠诚卫士

散列函数,又称哈希函数,是云安全领域中保障数据完整性的关键技术。它就像一个神奇的搅拌机,能将任意长度的数据转化为固定长度的散列值,这个散列值就如同数据的 “指纹”,具有唯一性。哪怕原始数据只发生了极其微小的变化,其生成的散列值也会截然不同,从而能够敏锐地检测出数据是否被篡改。

散列函数分为单向散列和双向散列。单向散列函数具有不可逆性,即无法从散列值反向推导出原始数据,这使得它在保护敏感信息方面表现卓越。常见的单向散列算法有 SHA-256、SHA-3 等。以 SHA-256 为例,它能将输入数据经过多轮复杂的逻辑函数运算和位变换,生成 256 位的散列值,广泛应用于用户密码存储场景。在用户注册时,系统不会直接保存用户输入的明文密码,而是通过 SHA-256 算法对密码进行散列处理,将得到的散列值存储在数据库中。当用户登录时,再次对输入密码进行相同算法的散列计算,然后与数据库中的散列值比对,若一致则验证通过,由于单向性,即使数据库泄露,攻击者也很难还原出原始密码。双向散列函数则相对少见,它允许在一定条件下从散列值还原数据,但安全性低于单向散列,较少用于高安全需求场景。

在数字签名过程中,散列函数同样起着举足轻重的作用。发送方先使用散列函数对要发送的数据生成散列值,再用私钥对散列值进行加密,得到数字签名与原始数据一同发送。接收方收到后,用发送方的公钥解密数字签名得到散列值,同时对接收到的数据重新计算散列值,比对二者,若相同则证明数据在传输过程中未被篡改,确保了数据的完整性与真实性。

然而,散列函数也面临一些攻击风险,如彩虹表攻击和字典攻击。攻击者利用预先计算好的大量常见密码及其对应散列值的彩虹表,或通过字典中的常见密码组合尝试破解。为应对此类攻击,常采用加盐(salt)技术,即在原始数据中添加一段随机生成的字符串(盐值)后再进行散列计算。例如,在密码存储时,为每个用户生成不同的盐值与密码组合散列,即使两个用户密码相同,由于盐值不同,存储的散列值也不同,大大增加了破解难度,为数据完整性与用户信息安全筑牢防线。

四、数字签名:数据来源与真伪的鉴定专家

数字签名宛如一位严谨的鉴定专家,在云安全领域发挥着至关重要的作用,它能够确凿地证明数据的来源,并验证数据在传输过程中是否遭受篡改,为数据的真实性与完整性提供坚实保障。

数字签名的构成精妙绝伦,它基于非对称加密技术与数字摘要技术协同运作。发送方首先运用散列函数(如 SHA-256)对要传输的数据生成独一无二的数字摘要,这一摘要恰似数据的 “基因密码”,精准浓缩了数据的关键特征。随后,发送方使用自己的私钥对数字摘要进行加密,生成的密文即为数字签名。这个签名与原始数据紧密绑定,一同被发送给接收方。

以 RSA 算法为例,详述其签名与验证流程。假设企业 A 要向合作伙伴企业 B 发送一份重要的商业合同文档,企业 A 先对合同文档运行 SHA-256 算法,获取固定长度的数字摘要。接着,企业 A 利用自身的 RSA 私钥对该摘要进行签名操作,具体是通过特定的数学运算,如模幂运算,将摘要转化为签名密文。之后,企业 A 把原始合同文档与数字签名一并传送给企业 B。企业 B 收到后,首先使用相同的 SHA-256 算法对收到的合同文档重新计算数字摘要,与此同时,运用企业 A 公开的 RSA 公钥对数字签名进行解密,还原出原始摘要。最后,对比这两个摘要,若完全一致,便能确凿证实合同文档在传输途中未被篡改,且确凿无疑来自企业 A,因为只有持有企业 A 私钥的主体才能生成与之匹配的有效签名。

在实际应用场景中,数字签名的价值展露无遗。在电子合同签署领域,它是确保合同公信力的核心要素。以往传统纸质合同依赖手写签名与印章来保障真实性,如今电子合同借助数字签名技术,实现了更高层级的安全防护。各方在电子合同平台签署协议时,各自用私钥生成数字签名附加于合同之上,一旦发生合同纠纷,任何一方都无法轻易抵赖,因为数字签名能够精准追溯签署者身份,其法律效力在众多国家和地区已得到法律认可,为线上商务合作筑牢信任根基,让数据往来于云端之际,真实性与合法性得以坚实捍卫。

五、公钥基础设施(PKI):信任的基石

在这里插入图片描述

公钥基础设施(PKI)宛如一座坚固的信任大厦,是云安全领域中至关重要的信任基石,它依托一系列复杂而严谨的组件与流程,为网络通信搭建起了安全、可信的桥梁,确保数据在传输与交互过程中的机密性、完整性以及各方身份的真实性。

PKI 体系架构犹如一个精密的组织,核心组件各司其职。其中,证书颁发机构(CA)无疑是整个体系的核心决策者,它如同一位权威的公证人,肩负着签发、管理数字证书这一重任,拥有至高无上的私钥,用其对数字证书进行签名,赋予证书无可置疑的权威性,以此验证证书持有者的公钥与身份信息的绑定关系,确保二者精准无误地对应,并且在证书的整个生命周期内,全面负责证书的吊销、更新等关键事务,维护证书的有效性与公信力。而注册机构(RA)则像是 CA 的得力助手,作为前端的 “身份侦探”,承担着细致入微的身份验证工作,对申请者提交的各类身份信息进行严格审查,确认无误后,才将证书申请精准地递交至 CA,大大减轻了 CA 的工作负担,提升了证书申请流程的整体效率。数字证书作为体系中的 “电子身份证”,是承载公钥与身份信息的关键载体,它犹如一把把经过严格认证的 “钥匙”,让通信双方得以在茫茫网络中相互识别、信任,凭借 CA 的签名背书,保障自身的真实性与完整性,为后续的安全通信奠定基础。证书存储库仿若一个庞大而有序的 “证书图书馆”,无论是本地计算机的特定存储区域,还是网络中的集中式证书库,都将数字证书、密钥以及证书撤销列表(CRL)等重要资料妥善保存,以便随时供各方查询调用,同时还肩负着验证证书链、甄别证书有效性的重任,是确保通信顺畅、安全的关键一环。

PKI 在众多领域都有着广泛且深入的应用,为各类线上业务保驾护航。在电子商务领域,当消费者在购物网站下单支付时,网站与消费者之间依托 PKI 建立的安全通道,使得消费者的支付信息被加密传输,如同放入坚固的保险箱,有效防止信息泄露,同时,网站的数字证书向消费者展示其合法身份,让消费者安心交易,避免陷入欺诈陷阱,为蓬勃发展的电商行业筑牢安全防线。在电子政务场景下,公民办理各类线上政务事项,如税务申报、证件办理等,PKI 保障了数据交互的安全,政府部门的数字证书彰显官方权威,公民提交的个人信息也因加密传输而得到妥善保护,提升政务服务效率的同时,维护了政府公信力与公民信息安全。此外,在企业内部的远程办公、云端协作等场景中,员工与企业服务器之间借助 PKI 进行身份认证与加密通信,确保企业敏感信息不被外部窃取,保障企业的正常运转与商业机密安全,让数字化办公得以在安全的轨道上高速前行。

数字证书与普通数字签名的区别在于,数字证书通常携带这几部分信息:证书拥有者的身份信息,该信息已由CA核实;证书拥有者的公钥;CA颁发的证书及CA的数字签名,数字签名中用CA的私钥对证书的摘要进行了加密;其他还有诸如有效期这类的相关信息。CA一般是业界信任的权威机构,其公钥通常是公开的,外界可用CA的公钥来核实CA数字签名的真伪,如果为真,说明CA已经核实了证书拥有者身份的真实性,从而间接地核实了该证书的真实性和有效性。

六、身份与访问管理(IAM):云端的门禁系统

在这里插入图片描述

身份与访问管理(IAM)宛如云端世界的门禁系统,处于云安全的核心地位,掌控着谁能够踏入云资源的领地,以及进入后可执行何种操作,全方位保障云资源访问的安全与合规性。

IAM 涵盖了一系列关键组件,每个组件都肩负重任。用户账户管理如同 “数字身份管理员”,负责创建、维护以及删除用户账户,为每个使用者在云端搭建独一无二的身份标识,确保身份信息的精准与有效;权限和角色管理仿若 “权限分配大师”,精心定义不同的角色与权限套餐,依据用户的工作职责和需求,将恰当的访问权限精准分配,避免权限滥用,例如为开发人员赋予代码仓库的读写权限,而测试人员仅有读权限;身份验证环节就像 “身份识别卫士”,通过用户名和密码、双因素认证等多种手段,严格核实用户身份,阻挡非法闯入者,多因素认证要求用户在输入密码的基础上,额外提供手机验证码、指纹识别等信息,极大增强了认证的安全性;授权过程恰似 “权限裁决法官”,根据身份验证结果,公正地授予或拒绝用户对特定资源的访问请求,确保资源仅对合法用户敞开大门;审计和监控则如同 “云端侦探”,忠实记录并严密监控用户活动,一旦发现异常行为,立即发出警报,为事后追溯与合规审查提供坚实依据;安全策略和协议好似 “安全法规制定者”,制定并推行如强密码策略、访问控制策略等一系列规则,规范用户行为,强化整体安全性。

以云存储服务为例,深入探究 IAM 的实际运作细节。企业使用云存储来存放重要文件资料,通过 IAM 创建不同的用户组,如管理层、员工层、合作伙伴层等。为管理层分配对所有文件夹的读写权限,以便他们全面掌控公司资料;员工层仅被授予对自身工作相关文件夹的读写权,保障各司其职,互不干扰;合作伙伴层则只有特定共享文件夹的只读权限,既能满足合作需求,又能防止数据泄露风险。同时,结合多因素认证,员工登录云存储时,除输入密码外,还需接收手机验证码,双重保障确保账户安全,即便是密码不慎泄露,攻击者也难以突破防线。在此场景下,IAM 凭借精细的权限划分与严格的身份认证,如同精密门锁与尽职保安,严密守护云存储中的数据资产,让企业放心将数据托管于云端。

七、单点登录机制(SSO):便捷与安全的完美融合

单点登录机制(SSO)宛如一把万能钥匙,为用户开启了便捷访问多个云应用的大门,在提升用户体验的同时,也强化了系统的安全性。它解决了在多系统环境下,用户需要反复登录不同应用、记忆繁多密码的难题。

SSO 的核心原理基于集中式身份认证系统。当用户首次访问某个启用 SSO 的应用(设为应用 A)时,应用 A 会检测用户是否已通过身份验证。若未验证,便将用户重定向到统一的身份提供者(IdP)。用户在 IdP 的登录页面输入凭证(如用户名和密码),IdP 验证通过后,会生成一个包含用户身份信息的令牌,通常采用如 JWT(JSON Web Token)等加密格式,涵盖用户身份、会话有效期等关键数据。随后,IdP 将用户重定向回应用 A,并携带该令牌。应用 A 接收令牌后,使用预先共享的密钥或公钥解密、验证令牌的真实性与有效性,若验证成功,即为用户创建本地会话,授予访问权限。此后,当用户访问其他启用 SSO 的应用(如应用 B)时,应用 B 检测到用户已通过身份验证,可直接接受现有令牌,或与 IdP 快速验证,无需用户再次输入凭证,真正实现 “一次登录,处处通行”。

在 SSO 的实现过程中,存在多种协议,各有优劣。SAML(Security Assertion Markup Language)是一种基于 XML 的开放标准,适用于复杂企业环境,高度安全,其认证流程为:服务提供商(SP)生成 SAML 请求,将用户重定向到 IdP,用户在 IdP 认证后,IdP 生成 SAML 断言,SP 验证断言并授权。但它配置复杂,不太适合移动应用。OAuth 2.0 则主要聚焦授权场景,常用于第三方应用获取资源服务器访问权限,如用户通过某社交媒体账号登录第三方应用时,借助 OAuth 2.0 实现授权访问,它灵活且广泛支持,尤其适合移动和 Web 应用,不过其实现过程在不同场景下可能存在不一致性。OpenID Connect 基于 OAuth 2.0 扩展,增加了 ID Token 和 UserInfo Endpoint,标准化了用户信息获取流程,结合了 OAuth 2.0 的优点,但作为较新的协议,部分旧系统可能不支持。Kerberos 常用于内网环境,基于票据授权,高度安全,不传输密码,但仅适用于内网且需要全系统支持。

以一家大型企业为例,企业内部员工日常工作需频繁穿梭于邮件系统、办公自动化系统、客户关系管理系统等多个业务系统之间。若未部署 SSO,员工每天需多次输入不同的用户名和密码,不仅繁琐耗时,还易因记错密码导致工作受阻,同时增加了密码泄露风险。引入 SSO 后,企业选用合适的协议(如结合企业架构复杂度、应用类型等因素,选择 SAML 或 OpenID Connect 等)搭建 SSO 系统,员工只需在首次登录时进行一次身份认证,后续访问其他系统无需重复操作,大幅提升工作效率。而且,企业通过集中管理身份认证,能更好地控制用户访问权限,如员工岗位变动时,可迅速调整其在各系统中的权限;一旦发生安全事件,能快速锁定或撤销相关人员对所有集成系统的访问,有效保护企业敏感信息,全方位彰显 SSO 在便捷与安全层面为企业运营带来的卓越价值。

八、基于云的安全组:网络流量的红绿灯

基于云的安全组就如同云端网络中的红绿灯,掌控着云实例间网络流量的放行与阻断,是云安全架构中至关重要的网络访问控制机制。它以虚拟防火墙的形式存在,通过精心配置的规则,精准地筛选允许进出云实例的数据包,为云资源构建起坚固的防护网。

在这里插入图片描述

安全组的核心功能聚焦于实例级别的流量管控,具有鲜明特性。其状态检测机制独具匠心,当安全组放行一个入站请求,如允许外部对某云服务器特定端口的访问请求后,会自动许可相应的出站响应流量,反之亦然,这大大简化了规则配置,确保正常通信的连贯性。默认拒绝策略更是为安全性层层加码,除明确允许的流量外,其余一概拒之门外,犹如为云实例配备了一位严谨的 “门禁卫士”,从根源上降低安全风险。以一台运行 Web 应用的云服务器为例,若只期望对外提供 HTTP(80 端口)和 HTTPS(443 端口)服务,只需在安全组中设定相应入站规则允许这两个端口流量进入,其他试图访问诸如数据库端口(3306)或未授权端口的流量,都会被果断拦截,保障服务器核心业务免受非法侵扰。

深入探究安全组规则设置,每条规则都如同精准的流量筛选器,涵盖规则方向(入站或出站)、授权策略(允许或拒绝)、协议类型(TCP、UDP、ICMP 等常见协议及自定义协议)、端口范围(精准指定单个端口或端口区间)、授权对象(特定 IP 地址、IP 段或全网段)等关键要素。例如,某企业运维人员要为公司云服务器配置安全组,以实现员工远程办公访问。对于入站规则,设置允许公司内部办公网段(如 192.168.1.0/24)通过 SSH(22 端口)协议访问服务器,确保员工能安全登录运维;出站规则则可按需放行服务器访问特定外部资源的流量,如允许访问互联网 DNS 服务器(53 端口)以解析域名,保障服务器业务正常运行。在云服务控制台,运维人员通过直观界面便捷操作,为每个云实例灵活绑定、调整安全组及其规则,实时适配业务变化需求。

在实际应用场景中,安全组发挥着中流砥柱的作用。以电商网站为例,在购物高峰期,网站面临海量用户访问请求。安全组通过合理规则设置,一方面放行来自全球各地用户对 Web 服务器 HTTP/HTTPS 端口的访问请求,确保购物流程顺畅;另一方面,严格限制对后端数据库服务器、订单处理服务器等关键内部资源的直接访问,仅允许特定运维 IP 在紧急维护时通过专用端口登录,全方位防范黑客攻击、数据泄露风险。若遭遇 DDoS 攻击,安全组结合云服务商的流量清洗服务,迅速阻断来自攻击源 IP 段的海量恶意请求,保障合法用户购物体验不受影响,如同在网络流量的汹涌浪潮中,为电商业务稳健运行保驾护航,稳固支撑企业云架构安全基石。

九、强化的虚拟服务器映像:安全启动的源头保障

虚拟服务器映像犹如云实例的 “种子”,是云服务器启动与运行的基础模板,包含操作系统、应用程序及初始配置等关键要素。然而,这颗 “种子” 在成长过程中极易遭受攻击,一旦被植入恶意软件、后门程序或存在系统漏洞,那么基于此映像创建的云服务器将从诞生之初便陷入安全泥沼,后续引发的数据泄露、权限失控等风险不堪设想。

为强化虚拟服务器映像的安全性,一系列严谨措施必不可少。首先,在映像构建环节,务必确保使用的软件源可靠,从官方、正规渠道获取操作系统及各类软件包,坚决杜绝引入恶意或有隐患的代码。以 Linux 系统映像构建为例,选用 Ubuntu、CentOS 等官方原版镜像作为基础,搭配官方认证的软件仓库源安装应用,避免使用未经审核的第三方源,有效降低软件包被篡改风险。其次,及时安装系统更新与安全补丁至关重要,各大操作系统厂商频繁发布更新,旨在修复诸如缓冲区溢出、权限提升等高危漏洞,定期更新能使映像紧跟安全前沿。再者,实施严格的配置管理,遵循最小权限原则优化系统服务与用户权限,关闭不必要的服务端口,如 Windows Server 映像中禁用默认开启但非必需的 IIS 服务(若不用于 Web 服务场景),减少攻击面。

在云服务提供商层面,多采用映像加密技术,将服务器映像转化为密文存储,只有在合法授权、具备解密密钥的情况下才能使用,防止映像被盗取后被轻易利用;同时,引入数字签名验证机制,为合法的映像附加数字签名,使用时校验签名,确保映像完整性与来源真实性,若签名不符,则警示可能存在篡改风险。对于企业用户而言,定制私有映像时,除遵循上述安全实践外,还应结合自身业务特性强化访问控制,限定特定人员可创建、管理映像,对映像的使用、分发全程记录审计,保障关键业务基础架构安全无虞。总之,强化的虚拟服务器映像作为云安全源头防线,为云服务稳定运行筑牢根基,助力企业安心畅享云时代红利。

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

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

相关文章

Vulnhub DC-9靶机实战

前言 这里说一下这个靶机的难点 1.这次sql注入是两个库的,在不使用sqlmap的情况下很多人直接database()看数据库,另一个库反倒没关注 2.nmap的扫描方式如果用-sT的tcp连接扫端口的话是扫不到那些被防火墙过滤的端口的,直接nmap ip就可以 3…

语音技术与人工智能:智能语音交互的多场景应用探索

引言 近年来,智能语音技术取得了飞速发展,逐渐渗透到日常生活和各行各业中。从语音助手到智能家居控制,再到企业客服和教育辅导,语音交互正以前所未有的速度改变着人机沟通的方式。这一变革背后,人工智能技术无疑是关键…

【Vim Masterclass 笔记10】S06L23:Vim 核心操作训练之 —— 文本的搜索、查找与替换操作(第二部分)

文章目录 S06L23 Search, Find, and Replace - Part Two1 文本替换命令 :s/old/new/2 指定范围的文本替换3 特例:路径的替换4 文件行号的配置5 要点总结(1)搜索当前行(Same Line Searching)(2)跨…

Wallpaper壁纸制作学习记录14

交互式操控变形动画 操控变形动画与ScenceScript 结合使用还可用于创建交互式壁纸元素。在本次实例中,将讲解如何允许用户抓取和拖动单个骨骼。 交互式骨骼 这里提供了本次实例中的项目下载链接:果冻项目。 设置操控变形动画 为了实现这一点&#xff…

vscode 扩展Cline、Continue的差别?

Cline和Continue都是VSCode的AI编程插件,它们在功能、用户体验、性能、适用场景以及配置和使用步骤等方面存在一些差别: 一、功能差异 编辑功能 Cline:能够分析项目的文件结构和源代码抽象语法树(AST),通…

【Rust自学】12.3. 重构 Pt.1:改善模块化

12.3.0. 写在正文之前 第12章要做一个实例的项目——一个命令行程序。这个程序是一个grep(Global Regular Expression Print),是一个全局正则搜索和输出的工具。它的功能是在指定的文件中搜索出指定的文字。 这个项目分为这么几步: 接收命令行参数读取…

excel设置好的可选择列数据后,如何快速输入到单元格中?

当设置好列的【数据】-【数据有效性】-【序列】后,在单元格中输入可选择数据的开头,就会提示出对应的可选择数据,然后,按一下键盘上的【↓】键,再按回车,即可快速输入到单元格中。

Vue3.5 企业级管理系统实战(二):Router、Pinia 及 Element-Plus 集成

1 Vue Router 集成 1.1 安装 vue-router 通过 pnpm 安装 Vue Router pnpm i vue-router 1.2 配置 Router 在 src 文件夹下新建 views 文件夹,新建文件 Home.vue 和 About.vue 在 src 文件夹下新建 router 文件夹,在 router 下新建 index.ts 用来配置…

OPT: Open Pre-trained Transformer语言模型

摘要 大规模语言模型通常需要数十万计算日的训练时间,展现了在零样本和小样本学习中的显著能力。鉴于其计算成本之高,这些模型在没有大量资本投入的情况下难以复现。对于那些通过API提供的少数模型,研究者无法获取完整的模型权重&#xff0c…

【PDF转Word】 PDF在线转word文档 好用!优质网站资源推荐

大家在工作与学习中,经常需要将PDF文件转换为Word格式以便进行编辑和修改。很多人都不知道怎么操作,今天我们介绍一个非常好用的工具:小白工具网,可以在线帮忙大家快速把PDF转换成word格式。 小白工具网提供的PDF转Word功能&…

2025 年前端开发学习路线图完整指南

如果您想成为前端开发人员,本指南适合您。无论您是从零开始还是已经了解基础知识,它都会帮助您专注于真正重要的事情并学习让您脱颖而出的技能。 刚开始的时候,我浪费了几个月的时间在不相关的教程上,因为我不知道从哪里开始&…

妙用编辑器:把EverEdit打造成一个编程学习小环境

1 妙用编辑器:把EverEdit打造成一个编程学习小环境 1.1 应用场景 最近在学习Python语言,由于只是学习和练习,代码规模很小,不想惊动PyCharm、VSCode、WingIDE这些重型武器,只想轻快的敲些代码,记事本虽好&…

【江协STM32】10-4/5 I2C通信外设、硬件I2C读写MPU6050

1. I2C外设简介 STM32内部集成了硬件I2C收发电路,可以由硬件自动执行时钟生成、起始终止条件生成、应答位收发、数据收发等功能,减轻CPU的负担支持多主机模型支持7位/10位地址模式支持不同的通讯速度,标准速度(高达100 kHz),快速…

初识 Git——《Pro Git》

Why Git? 1. 本地版本控制系统 Why: 许多人习惯用复制整个项目目录的方式来保存不同的版本,或许还会改名加上备份时间以示区别。 这么做唯一的好处就是简单,但是特别容易犯错。 有时候会混淆所在的工作目录,一不小心…

记一次学习skynet中的C/Lua接口编程解析protobuf过程

1.引言 最近在学习skynet过程中发现在网络收发数据的过程中数据都是裸奔,就想加入一种数据序列化方式,json、xml简单好用,但我就是不想用,于是就想到了protobuf,对于protobuf C/C的使用个人感觉有点重,正好…

使用RSyslog将Nginx Access Log写入Kafka

个人博客地址:使用RSyslog将Nginx Access Log写入Kafka | 一张假钞的真实世界 环境说明 CentOS Linux release 7.3.1611kafka_2.12-0.10.2.2nginx/1.12.2rsyslog-8.24.0-34.el7.x86_64.rpm 创建测试Topic $ ./kafka-topics.sh --zookeeper 192.168.72.25:2181/k…

MySQL(行结构)

后面也会持续更新,学到新东西会在其中补充。 建议按顺序食用,欢迎批评或者交流! 缺什么东西欢迎评论!我都会及时修改的! MySQL 一行记录是怎么存储的? | 小林coding MySQL原理 - InnoDB引擎 - 行记录存…

ros2笔记-6.2 使用urdf创建机器人模型

本节主要跟着小鱼老师的视频操作,不同的仿真平台有不同的建模语言,但是几乎都支持URDF。 本节使用URDF创建一个机器人模型。 6.2.1 帮机器人创建一个身体 URDF使用XML来描述机器人的结构和传感器、执行器等信息。 在chapt6/chap6_ws/src创建功能包:r…

基于mybatis-plus历史背景下的多租户平台改造

前言 别误会,本篇【并不是】 要用mybatis-plus自身的多租户方案:在表中加一个tenant_id字段来区分不同的租户数据。并不是的! 而是在假设业务系统已经使用mybatis-plus多数据源的前提下,如何实现业务数据库隔开的多租户系统。 这…

【JAVA基础】Collections方法的具体使用方法

java基础中Collections及collect(toList,toSet,toMap)的用法 package com.gaofeng;import java.util.*; import java.util.function.Function; import java.util.stream.Collectors; import java.util.stream.Stream;public class demo01 {public static void main(String[] …