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

第五章:架构安全性_《凤凰架构:构建可靠的大型分布式系统》

第五章 架构安全性

一、认证机制

核心知识点

  1. 认证标准

    • HTTP Basic认证:Base64编码传输凭证,需配合HTTPS使用
    • OAuth 2.0:授权框架,重点掌握四种授权模式:
      • 授权码模式(最安全,适合Web应用)
      • 隐式模式(移动端/SPA)
      • 密码模式(信任环境)
      • 客户端凭证模式(服务间通信)
    • OpenID Connect:基于OAuth 2.0的身份层协议
  2. 实现要点

    • 多因素认证(MFA)设计
    • 认证服务器的高可用设计
    • 令牌生命周期管理(刷新令牌机制)

重难点解析

  • OAuth 2.0授权码模式流程

    1. 客户端引导用户到授权端点
    2. 用户认证后返回授权码
    3. 客户端用授权码换取访问令牌
    4. 使用令牌访问资源
      关键点:授权码不直接暴露给前端,防止CSRF
  • 令牌存储安全

    • 访问令牌建议存内存而非localStorage
    • 刷新令牌必须加密存储
    • 令牌吊销机制实现(令牌黑名单/短期令牌)
二、授权控制

核心模型

  1. RBAC(基于角色的访问控制)

    • 角色-权限-用户三级模型
    • 权限继承与组合
    • 动态角色管理(如时间敏感角色)
  2. ABAC(基于属性的访问控制)

    • 环境属性(IP、时间)
    • 资源属性(敏感等级)
    • 动态策略评估

OAuth 2.0授权

  • Scope机制设计原则:
    • 最小权限原则
    • 粒度控制(如read vs write)
  • 资源服务器的策略实施点(PEP)设计

难点突破

  • 权限继承冲突解决

    • 显式拒绝优先原则
    • 最近继承原则
    • 权重叠加策略
  • 分布式环境授权

    • 集中式策略决策点(PDP)
    • 本地策略缓存更新机制
    • 策略版本控制
三、凭证管理

技术对比

特性Cookie-SessionJWT
状态服务端状态无状态
扩展性需要会话存储天然分布式
安全性依赖HTTPS需严格密钥管理
失效机制服务端立即生效依赖过期时间或黑名单

JWT实践要点

  1. 签名算法选择
    • HS256(对称)vs RS256(非对称)
    • 密钥轮换策略
  2. 安全声明设置
    • iss(签发者)
    • exp(过期时间)
    • aud(受众)
  3. 防重放攻击
    • jti(唯一标识)
    • 短期有效+刷新机制

常见问题

  • 令牌泄露应对方案:
    • 强制重新认证
    • 令牌绑定(IP/设备指纹)
    • 短期令牌自动失效
四、数据保密

加密实践

  1. 传输层加密

    • TLS 1.3协议优势
    • 完全前向保密配置
    • HSTS头设置
  2. 应用层加密

    • 客户端加密场景(如密码提交)
    • 信封加密模式(KMS应用)
    • 同态加密的适用场景

密码存储

  • PBKDF2算法迭代次数建议(>10,000次)
  • bcrypt cost因子设置(>=12)
  • 盐值生成规范(16字节随机值)

密钥管理

  • 硬件安全模块(HSM)应用
  • 密钥生命周期管理:
    • 生成->激活->轮换->退役
  • 多区域密钥副本策略
五、传输安全

TLS最佳实践

  1. 证书管理

    • 自动续期(ACME协议)
    • 证书透明度(CT)监控
    • 多域名SAN证书配置
  2. 协议配置

    • 禁用SSLv3/TLS 1.0
    • 密码套件排序策略
    • OCSP装订配置

安全头设置

Strict-Transport-Security: max-age=63072000; includeSubDomains
Content-Security-Policy: default-src 'self'
X-Content-Type-Options: nosniff
X-Frame-Options: DENY

常见漏洞防御

  • CRLF注入:严格输入过滤
  • 中间人攻击:证书固定(Certificate Pinning)
  • 降级攻击:TLS_FALLBACK_SCSV配置
六、安全验证

验证维度

  1. 代码审计

    • SAST工具集成(如SonarQube)
    • 依赖扫描(OWASP Dependency-Check)
  2. 渗透测试

    • 业务逻辑漏洞测试
    • 接口fuzz测试
    • 越权测试(水平/垂直)
  3. 监控预警

    • 异常登录检测(异地登录)
    • 暴力破解防护(滑动窗口计数)
    • 敏感操作审计日志

持续安全

  • 安全左移(Shift-Left)实践
  • 安全测试流水线集成
  • 漏洞分级响应机制
七、架构级安全设计

模式应用

  1. 零信任网络

    • 微隔离实现
    • 持续身份验证
    • 设备健康检查
  2. 服务网格安全

    • mTLS自动配置
    • 细粒度访问控制
    • 流量审计追踪
  3. 安全边界设计

    • API网关统一鉴权
    • 敏感操作二次认证
    • 安全沙箱隔离

典型问题解决

  • 跨服务授权
    使用OAuth 2.0 Token Exchange规范
  • 密钥分发
    基于SPIFFE标准的身份标识
  • 审计追溯
    分布式追踪+结构化日志
实战建议
  1. 安全设计检查表

    • 认证机制是否支持多因素
    • 权限变更是否实时生效
    • 敏感数据是否加密存储
    • TLS配置是否符合最新标准
    • 安全头是否完整配置
  2. 攻防演练

    • 定期红蓝对抗
    • 漏洞赏金计划
    • 应急预案演练
  3. 工具推荐

    • 密钥管理:HashiCorp Vault
    • 权限管理:Keycloak
    • 安全监控:Elastic SIEM
    • 漏洞扫描:Nessus

通过系统性地实践这些安全原则和技术,结合持续的安全运营,可以构建出符合"零信任"理念的可靠安全架构。要特别注意在分布式环境下各安全组件的协同工作,以及安全策略的集中管理和动态更新能力。

第五章 架构安全性 重难点多选题


题目1:关于认证标准的描述,正确的有?
A. OAuth 2.0 主要用于授权而非认证
B. OpenID Connect 是基于OAuth 2.0的认证协议
C. SAML 2.0 依赖JSON格式传递数据
D. Kerberos协议通过票据机制实现双向认证

题目2:以下哪些是RBAC(基于角色的访问控制)的核心要素?
A. 用户-角色-权限的层级关系
B. 动态调整用户权限的上下文策略
C. 角色的继承和互斥关系
D. 基于资源的细粒度访问控制

题目3:关于OAuth 2.0授权模式,正确的有?
A. 客户端凭证模式适用于服务间通信
B. 隐式模式适用于原生移动应用
C. 授权码模式需要客户端保存密钥
D. 密码模式在公开客户端中推荐使用

题目4:JWT(JSON Web Token)的组成部分包括?
A. 头部(Header)
B. 载荷(Payload)
C. 签名(Signature)
D. 加密内容(Encrypted Body)

题目5:关于密码存储的安全性实践,正确的有?
A. 使用MD5加盐存储密码
B. 采用自适应哈希算法(如Argon2)
C. 密码哈希值应使用固定盐值
D. 定期强制用户更换密码

题目6:传输层安全(TLS)的关键特性包括?
A. 数据完整性保护
B. 使用非对称加密传输所有数据
C. 支持前向保密(PFS)
D. 通过数字证书验证服务端身份

题目7:关于TCC(Try-Confirm-Cancel)事务的安全风险,正确的有?
A. 网络分区可能导致悬挂事务
B. 需要保证幂等性以应对重试
C. 依赖全局锁实现隔离性
D. 资源预留可能导致死锁

题目8:以下哪些是零信任网络的核心原则?
A. 默认信任内部网络流量
B. 最小权限原则
C. 持续验证身份和权限
D. 基于IP地址的访问控制

题目9:客户端加密的典型应用场景包括?
A. 端到端加密通信(如Signal)
B. 数据库字段级加密
C. HTTPS传输加密
D. 防止中间人攻击

题目10:关于数字证书的描述,正确的有?
A. 证书链的根证书由服务端自行签发
B. 证书包含公钥和颁发机构签名
C. 证书吊销通过CRL或OCSP实现
D. 自签名证书无法通过CA验证


答案与解析

题目1答案:ABD

  • 解析
    C错误,SAML 2.0使用XML而非JSON。A正确,OAuth 2.0用于授权;B正确,OpenID Connect扩展了OAuth;D正确,Kerberos通过票据实现双向认证。

题目2答案:AC

  • 解析
    B是ABAC(属性访问控制)的特点;D是RBAC的扩展(如RBAC2)。AC是RBAC的核心层级和角色关系。

题目3答案:AB

  • 解析
    C错误,授权码模式无需客户端保存密钥;D错误,密码模式在公开客户端中不安全。A正确,客户端凭证用于服务间;B正确,隐式模式适合移动端。

题目4答案:ABC

  • 解析
    D错误,标准JWT由头部、载荷和签名组成,加密需使用JWE规范,非默认部分。

题目5答案:BD

  • 解析
    A错误,MD5已不安全;C错误,盐值应随机且唯一。B正确,Argon2是推荐算法;D正确,定期更换降低泄露风险。

题目6答案:ACD

  • 解析
    B错误,TLS对称加密传输数据,非对称仅用于密钥交换。ACD正确,分别是完整性、前向保密和证书验证。

题目7答案:ABD

  • 解析
    C错误,TCC不依赖全局锁。ABD是TCC的典型风险:悬挂事务需超时机制、幂等性应对重试、资源预留可能死锁。

题目8答案:BC

  • 解析
    A和D违背零信任原则(默认不信任、不依赖网络位置)。BC是核心原则:最小权限和持续验证。

题目9答案:AB

  • 解析
    C由TLS实现,属于传输层;D是传输层防护。AB是客户端加密场景:端到端加密和字段级加密。

题目10答案:BC

  • 解析
    A错误,根证书由受信CA签发;D错误,自签名证书可被手动信任。B正确,证书包含公钥和签名;C正确,吊销通过CRL/OCSP。

相关文章:

第五章:架构安全性_《凤凰架构:构建可靠的大型分布式系统》

第五章 架构安全性 一、认证机制 核心知识点: 认证标准: HTTP Basic认证:Base64编码传输凭证,需配合HTTPS使用OAuth 2.0:授权框架,重点掌握四种授权模式: 授权码模式(最安全&#…...

控件主题效果添加程序设计

以下是针对Qt Designer设计的控件添加阴影效果的完整解决方案,结合可视化设置与动态主题支持: 一、基础阴影效果实现方案 1. 通过QSS实现简易阴影(适用于简单需求) /* 使用多重边框模拟阴影效果 */ QFrame#customWidget {borde…...

用swift playground写个ios应用和大模型或者网站交互

import SwiftUIstruct ContentView: View {State private var textFieldText: String ""State private var outputText: String "输出将会显示在这里"private let tip:String "消息已发送,请等待"State private var history:[Stri…...

Mlivus Cloud SDK v2的革新:从痛点剖析到实战优化

目录 从V1到V2:开发者体验的范式转变 深度解析SDK v2的架构革新 1. 统一接口范式:终结API混乱时代 2. 原生异步支持:高并发场景的性能救星 3. Schema Cache机制:性能优化的隐形冠军 4. 全功能REST API:简化集成的关键 实战指南:从迁移到深度优化 平滑迁移策略 性…...

【图像处理基石】什么是AWB?

1. AWB(自动白平衡)的定义 AWB(Auto White Balance)是一种图像处理技术,通过算法校正不同色温光源下图像的色彩偏差,使白色在任何光照条件下都能准确呈现为白色,从而让图像颜色更接近人眼真实感…...

[蓝桥杯 2017 省 B] k 倍区间

P8649 [蓝桥杯 2017 省 B] k 倍区间 题目描述 给定一个长度为 N N N 的数列, A 1 , A 2 , ⋯ A N A_1,A_2, \cdots A_N A1​,A2​,⋯AN​,如果其中一段连续的子序列 A i , A i 1 , ⋯ A j ( i ≤ j ) A_i,A_{i1}, \cdots A_j(i \le j) Ai​,Ai1​,⋯…...

基于SSM的高校宿舍水电管理系统

作者:计算机学姐 开发技术:SpringBoot、SSM、Vue、MySQL、JSP、ElementUI、Python、小程序等,“文末源码”。 专栏推荐:前后端分离项目源码、SpringBoot项目源码、Vue项目源码、SSM项目源码、微信小程序源码 精品专栏:…...

【LLM系列】1.大模型简介

1. 基础 1.1 如何权衡模型的复杂度和性能? ├── a. 模型架构选择 │ ├── 简化架构 │ │ └── 选择较小的网络层数和宽度,降低复杂度; │ │ 可使用高性能基础模型如 Transformers 作为起点,根据需求缩放模型。 │ └──…...

从概念和设计哲学的角度详细解析工厂模式

从概念和设计哲学的角度详细解析工厂模式。 1. 工厂模式的核心目标 解耦:将对象的创建过程与使用过程分离,使用者无需关心对象如何被创建。 统一入口:通过一个接口或方法控制对象的生成,隐藏底层实现细节。 类比现实中的工厂&am…...

AI小白:机器学习VS深度学习

1 特征工程的范式革命 传统机器学习:手工特征工程的艺术 在传统机器学习中,特征工程是一个关键步骤,它涉及将原始数据转化为能够被机器学习模型高效利用的特征。这通常需要领域专家的经验和知识,以手动设计和提取特征。 例如&a…...

对应列表数据的分割和分组

要基于指定的流派列表分割数据,可以使用 布尔索引 或 groupby 结合筛选。以下是具体方法: 场景假设 数据列 genres 中的值可能是多流派的字符串,例如 "drama,action" 或 ["drama", "action"]。目标&#xff1…...

信息物理系统(CPS):中国 AI(DEEPSEEK)的未来路径

一、引言 人工智能(AI)的发展正从通用模型向垂直领域渗透,而信息物理系统(CPS)作为连接数字世界与物理世界的桥梁,为 AI 提供了新的发展方向。中国 AI 企业如 DEEPSEEK 通过开源策略和本土化优势&#xff…...

SEO长尾词优化实战技巧

内容概要 长尾关键词作为SEO策略的重要组成部分,能够有效捕捉细分领域的精准流量,降低竞争成本的同时提升转化效率。本文系统梳理了从关键词挖掘到流量转化的全链路优化方法,重点解析工具使用、布局策略及搜索意图匹配三大核心模块。通过结合…...

爬虫自动化工具:DrissionPage

1. DrissionPage初始 官网地址:🛰️ 概述 | DrissionPage官网 在当今互联网高速发展的时代,网页数据的获取和处理变得愈发重要。传统的自动化工具如 Selenium 在某些方面逐渐显露出一些局限性,而 DrissionPage 正是在这样的背景下…...

扩展库Scrapy:Python网络爬虫的利器

目录 一、扩展机制的核心原理 二、六大实用扩展库详解 1. 动态渲染神器:scrapy-playwright 2. 分布式架构:scrapy-redis 3. 反反爬利器:scrapy-zyte-smartproxy 4. 智能调度:scrapy-thunder 5. 数据管道:scrapy…...

L3-21

exer01 Message # 1.定义Message消息类和cmd,content,sender,to四个属性,其中to默认为None class Message:def __init__(self, cmd, content, sender, toNone):self.cmd cmdself.content contentself.sender senderself.to to # 2. 创建登录消息对象msg1,聊天消…...

04.游戏开发-unity编辑器详细-工具栏、菜单栏、工作识图详解

04.游戏开发,unity编辑器详细-工具栏、菜单栏、工作识图详解 提示:帮帮志会陆续更新非常多的IT技术知识,希望分享的内容对您有用。本章分享的是Python基础语法。前后每一小节的内容是存在的有:学习and理解的关联性,希…...

GRBL运动控制算法(二)圆弧插补

前言 GRBL 是一款高性能、开源的嵌入式 CNC(计算机数控)控制器固件,专为 Arduino 平台优化,广泛应用于雕刻机、激光切割机、3D 打印机及其他精密运动控制场景。自 2009 年发布以来,GRBL 凭借其高效的运动规划算法、稳…...

《P1072 [NOIP 2009 提高组] Hankson 的趣味题》

题目描述 Hanks 博士是 BT(Bio-Tech,生物技术) 领域的知名专家,他的儿子名叫 Hankson。现在,刚刚放学回家的 Hankson 正在思考一个有趣的问题。 今天在课堂上,老师讲解了如何求两个正整数 c1​ 和 c2​ 的最大公约数…...

矩阵分解中的梯度下降:详细实现方案(包含数学推导、代码实现和优化技巧)

矩阵分解中的梯度下降:详细实现方案(包含数学推导、代码实现和优化技巧) 矩阵分解是机器学习和数据科学中重要的技术,广泛应用于推荐系统、自然语言处理、图像处理等领域。梯度下降作为一种优化算法,在矩阵分解中常用于最小化目标函数以找到最佳的矩阵近似。本指南将详细…...

STM32F103C8T6实现 SG90 360 °电机转动

简介 基于上一篇 STM32F103C8T6实现 SG90 180 电机任意角度转动 本来想实现角度转动, 但靠舵机本身无法实现限位, 需要记录位置, 并且根据转速计算大概位置, 存在误差, 不实现角度转动了, 只实现正反转 代码 正向速度0.75为最大速度, 反向2.25, 接近1.5…...

RTDETR融合[CVPR2025]DnLUT中的MuLUTUnit模块

RT-DETR使用教程: RT-DETR使用教程 RT-DETR改进汇总贴:RT-DETR更新汇总贴 《DnLUT: Ultra-Efficient Color Image Denoising via Channel-Aware Lookup Tables》 一、 模块介绍 论文链接:https://arxiv.org/pdf/2503.15931 代码链接&#xf…...

大数据Spark(五十七):Spark运行架构与MapReduce区别

文章目录 Spark运行架构与MapReduce区别 一、Spark运行架构 二、Spark与MapReduce区别 Spark运行架构与MapReduce区别 一、Spark运行架构 Master:Spark集群中资源管理主节点,负责管理Worker节点。Worker:Spark集群中资源管理的从节点,负责任务的运行…...

二:python基础(黑马)

一:了解 1.1: python特点 python是完全面向对象的语言 函数,模块,数字,字符串都是对象,在python中一切皆对象 完全支持继承,重载,多重继承 支持重载运算符,也支持泛型设计 py…...

【马拉车 KMP 差分数组】P6216 回文匹配|省选-

本文涉及知识点 较难理解的字符串查找算法KMP C差分数组 马拉车算法 P6216 回文匹配 题目描述 对于一对字符串 ( s 1 , s 2 ) (s_1,s_2) (s1​,s2​),若 s 1 s_1 s1​ 的长度为奇数的子串 ( l , r ) (l,r) (l,r) 满足 ( l , r ) (l,r) (l,r) 是回文的&#…...

C/C++测试框架googletest使用示例

文章目录 文档编译安装示例参考文章 文档 https://github.com/google/googletest https://google.github.io/googletest/ 编译安装 googletest是cmake项目,可以用cmake指令编译 cmake -B build && cmake --build build将编译产物lib和include 两个文件夹…...

提高MCU的效率方法

要提高MCU(微控制器单元)的编程效率,需要从硬件特性、代码优化、算法选择、资源管理等多方面入手。以下是一些关键策略: 1. 硬件相关优化 时钟与频率: 根据需求选择合适的时钟源(内部/外部振荡器),避免过高的时钟频率导致功耗浪费。关闭未使用的外设时钟(如定时器、UA…...

Ansible 实战:Roles,运维的 “魔法函数”

一、介绍 你现在已经学过tasks和handlers,那么,最好的playbook组织方式是什么呢?答案很简单:使用roles!roles基于一种已知的文件结构,能够自动加载特定的vars_files、tasks以及handlers。通过roles对内容进…...

GO简单开发grpc

什么是grpc 首先我们需要了解,什么是grpc gRPC(全称:google remote procedure call)是由Google开发的一个高性能、开源的远程过程调用(RPC)框架。它基于 HTTP/2 协议,并且使用 Protocol Buffer…...

强引用,弱引用,软引用,虚引用,自旋锁,读写锁

强引用:强引用GC不会回收 软引用:内存够的话不回收,内存不够的话回收 弱引用:不管内存够不够,只要有GC就回收 虚引用:点get是null,但是GC后他会把引用放到引用队列里边 自旋锁:是指尝…...

C++异常处理 throw try catch

C 异常处理概述 C 异常处理机制提供了一种在程序运行时捕获错误或异常情况的方式。异常处理的目的是使得程序在遇到错误时能够优雅地终止或恢复,并防止程序出现崩溃。C 使用 try, throw, 和 catch 关键字来实现异常处理。 异常处理的基本结构: throw: …...

优化 Web 性能:管理第三方资源(Third-Party Summary)

在现代 Web 开发中,第三方资源(如分析工具、广告脚本、字体服务)为网站提供了丰富的功能,但也可能成为性能瓶颈。Google 的 Lighthouse 工具在性能审计中提供了“第三方资源概要”(Third-Party Summary)&am…...

第六章、 系统级 I/O

真题考点 考点一:Unix I/O 所有的 I/O 设备(例如网络、磁盘和终端)都被模型化为文件,而所有的输入和输出都被当作对相应文件的读和写来执行。这种将设备优雅地映射为文件的方式,允许 Linux 内核引出一个简单、低级的应用接口,称为…...

Jetpack Compose 自定义标题栏终极指南:从基础到高级实战

Jetpack Compose 自定义标题栏终极指南:从基础到高级实战 本文将带你彻底掌握 Compose 标题栏开发,涵盖 5 种专业级实现方案 性能优化技巧 完整可运行代码。 📚 核心方案对比 方案特点适用场景复杂度基础Row布局完全自定义,灵…...

晶晨S905-S905L-S905LB_S905M2通刷_安卓6.0.1_16S极速开机_线刷固件包

晶晨S905-S905L-S905LB_S905M2通刷_安卓6.0.1_16S极速开机_线刷固件包 线刷方法:(新手参考借鉴一下) 刷机工具版本请用2.2.0以上,导入固件后,刷机工具右侧两个擦除打勾,然后点开始。插上刷机神器&#xf…...

tkiner模块的初步学习

文章目录 一、前言二、概念2.1 安装2.2 窗口 三、小部件3.1 概述3.2 常用小部件3.2.1 Label3.2.2 Button3.2.3 Entry3.2.4 Text3.2.5 Listbox3.2.6 Checkbutton3.2.7 Radiobutton3.2.8 Scrollbar 3.3 更多小部件3.3.1 Scale3.3.2 Spinbox3.3.3. Progressbar 3.4 主题小部件 四、…...

Java常用数据结构操作方法全面总结

目录 一、List接口及其实现类二、Set接口及其实现类三、Map接口及其实现类四、Queue/Deque队列五、Stack栈六、树形结构七、注意事项与最佳实践总结 一、List接口及其实现类 核心实现类 ArrayList:基于动态数组LinkedList:基于双向链表 常用操作方法…...

Java的Selenium的特殊元素操作与定位之select下拉框

如果页面元素是一个下拉框,我们可以将此web元素封装为Select对象 Select selectnew Select(WebElement element); Select对象常用api select.getOptions();//获取所有选项select.selectBylndex(index);//根据索引选中对应的元素select.selectByValue(value);//选…...

STM32单片机入门学习——第15节: [6-3] TIM输出比较

写这个文章是用来学习的,记录一下我的学习过程。希望我能一直坚持下去,我只是一个小白,只是想好好学习,我知道这会很难,但我还是想去做! 本文写于:2025.04.05 STM32开发板学习——第15节: [6-3] TIM输出比较 前言开发板说明引用解答和科普一…...

力扣经典算法篇-9-跳跃游戏(贪心算法,反向递推)

题干: 给你一个非负整数数组 nums ,你最初位于数组的 第一个下标 。数组中的每个元素代表你在该位置可以跳跃的最大长度。 判断你是否能够到达最后一个下标,如果可以,返回 true ;否则,返回 false 。 示例 …...

java面向对象 - 封装、继承和多态

1.封装 定义 封装是把对象的属性和操作(或服务)结合为一个独立的整体,并尽可能隐藏对象的内部实现细节。通过访问控制修饰符(如private、protected、public)对属性和方法的访问进行限制,以此提升代码的安全性与可维护性。 要点 访问控制:运用private修饰属性,防止外部直…...

铁电液晶(FLC)与反铁电液晶(AFLC)

### **铁电液晶(FLC)与反铁电液晶(AFLC)的原理、区别及应用** --- ## **1. 基本原理** ### **(1)铁电液晶(Ferroelectric Liquid Crystal, FLC)** - **分子结构**: …...

经典算法 a^b

原题目链接 问题描述 求 a 的 b 次方对 p 取模的值,即计算: a^b mod p输入格式 输入一行,包含三个整数 a、b 和 p,中间用空格隔开。 输出格式 输出一个整数,表示 a^b mod p 的值。 数据范围 0 ≤ a, b ≤ 10^91 …...

Python解决“组成字符串ku的最大次数”问题

Python解决“组成字符串ku的最大次数”问题 问题描述测试样例解题思路代码 问题描述 给定一个字符串 s,该字符串中只包含英文大小写字母。你需要计算从字符串中最多能组成多少个字符串 “ku”。每次可以随机从字符串中选一个字符,并且选中的字符不能再使…...

ubuntu22使用TrinityCore搭建魔兽世界服务器

目录 一、Ubuntu22工具下载二、服务端编译配置1. 从 git 上拉取服务端代码2. 编译客户端3. 修改配置文件4. 加载sql语句5. 下载客户端6. 下载必要sql文件 三、客户端连接配置四、游戏启动 一、Ubuntu22工具下载 下载所有需要的工具 sudo apt-get update sudo apt-get install…...

LeetCode - 739.每日温度问题单调栈解法

目录 问题描述 方法思路:单调栈 核心思想 为什么用单调栈? 算法步骤 代码实现与逐行解析 示例解析 复杂度分析 总结 问题描述 给定一个整数数组 temperatures,表示每天的温度,返回一个数组 answer,其中 answe…...

GESP:2025-3月等级8-T1-上学

时间限制 : 1 秒 内存限制 : 128 MB C 城可以视为由 n个结点与 m条边组成的无向图。这些结点依次以1,2,....n标号&#xff0c;边依次以 1,2...m标号。第i条边&#xff08;1<i<m &#xff09;连接编号为ui 与vi的结点&#xff0c;长度为li米。 小 A 的学校坐落在 C 城中…...

宏碁笔记本电脑擎7PRO搭载的 NVIDIA RTX 5080 显卡安装pytorch

宏碁笔记本电脑擎7PRO搭载的 NVIDIA RTX 5080 显卡是一款高性能移动 GPU&#xff0c;基于 NVIDIA 最新的 Blackwell 架构设计&#xff0c;通过修正架构&#xff08;Blackwell&#xff09;、显存类型与带宽&#xff08;GDDR7、960GB/s&#xff09;、Tensor Core 与 RT Core 全面…...

Qwen-7B-Chat 本地化部署使用

通义千问 简介 通义千问是阿里云推出的超大规模语言模型&#xff0c;以下是其优缺点&#xff1a; 优点 强大的基础能力&#xff1a;具备语义理解与抽取、闲聊、上下文对话、生成与创作、知识与百科、代码、逻辑与推理、计算、角色扮演等多种能力。可以续写小说、编写邮件、解…...

数据结构,顺序存储线性表

//线性表顺序存储 #include<stdio.h> #include<stdlib.h> #define MAXSIZE 100 #define ElemType int //定义结构体 typedef struct LinearList{ElemType elem[MAXSIZE];int last; }LinearList; //初始化链表 void InitList(LinearList &L){L.last-1; };…...