TDengine 安全部署配置建议
背景
TDengine 的分布式、多组件特性导致 TDengine 的安全配置是生产系统中比较关注的问题。本文档旨在对 TDengine 各组件及在不同部署方式下的安全问题进行说明,并提供部署和配置建议,为用户的数据安全提供支持。
安全配置涉及组件
TDengine 包含多个组件,有:
taosd
:内核组件。taosc
:客户端库。taosAdapter
:REST API 和 WebSocket 服务。taosKeeper
:监控服务组件。taosX
:数据管道和备份恢复组件。taosxAgent
:外部数据源数据接入辅助组件。taosExplorer
:Web 可视化管理界面。
与 TDengine 部署和应用相关,还会存在以下组件:
- 通过各种连接器接入并使用 TDengine 数据库的应用。
- 外部数据源:指接入 TDengine 的其他数据源,如 MQTT、OPC、Kafka 等。
各组件关系如下:
关于各组件的详细介绍,请参考 组件介绍。
TDengine 安全设置
taosd
taosd 集群间使用 TCP 连接基于自有协议进行数据交换,风险较低,但传输过程不是加密的,仍有一定安全风险。
启用压缩可能对 TCP 数据混淆有帮助。
- compressMsgSize:是否对 RPC 消息进行压缩,整数,可选:-1:所有消息都不压缩;0:所有消息都压缩;N (N>0):只有大于 N 个字节的消息才压缩。
为了保证数据库操作可追溯,建议启用审计功能。
- audit:审计功能开关,0 为关,1 为开。默认打开。
- auditInterval:上报间隔,单位为毫秒。默认 5000。
- auditCreateTable:是否针对创建子表开启申计功能。0 为关,1 为开。默认打开。
为保证数据文件安全,可启用数据库加密。
- encryptAlgorithm:数据加密算法。
- encryptScope:数据加密范围。
启用白名单可限制访问地址,进一步增强私密性。
- enableWhiteList:白名单功能开关,0 为关,1 为开;默认关闭。
taosc
用户和其他组件与 taosd
之间使用原生客户端库(taosc)和自有协议进行连接,数据安全风险较低,但传输过程仍然不是加密的,有一定安全风险。
taosAdapter
taosadapter 与 taosd 之间使用原生客户端库(taosc)和自有协议进行连接,同样支持 RPC 消息压缩,不会造成数据安全问题。
应用和其他组件通过各语言连接器与 taosadapter 进行连接。默认情况下,连接是基于 HTTP 1.1 且不加密的。要保证 taosadapter 与其他组件之间的数据传输安全,需要配置 SSL 加密连接。在 /etc/taos/taosadapter.toml
配置文件中修改如下配置:
[ssl]
enable = true
certFile = "/path/to/certificate-file"
keyFile = "/path/to/private-key"
在连接器中配置 HTTPS/SSL 访问方式,完成加密访问。
为进一步增强安全性,可启用白名单功能,在 taosd
中配置,对 taosdapter 组件同样生效。
taosX
taosX
对外包括 REST API 接口和 gRPC 接口,其中 gRPC 接口用于 taos-agent 连接。
- REST API 接口是基于 HTTP 1.1 且不加密的,有安全风险。
- gRPC 接口基于 HTTP 2 且不加密,有安全风险。
为了保证数据安全,建议 taosX API 接口仅限内部访问。在 /etc/taos/taosx.toml
配置文件中修改如下配置:
[serve]
listen = "127.0.0.1:6050"
grpc = "127.0.0.1:6055"
从 TDengine 3.3.6.0 开始,taosX 支持 HTTPS 连接,在 /etc/taos/taosx.toml
文件中添加如下配置:
[serve]
ssl_cert = "/path/to/server.pem"
ssl_key = "/path/to/server.key"
ssl_ca = "/path/to/ca.pem"
并在 Explorer 中修改 API 地址为 HTTPS 连接:
# taosX API 本地连接
x_api = "https://127.0.01:6050"
# Public IP 或者域名地址
grpc = "https://public.domain.name:6055"
taosExplorer
与 taosAdapter
组件相似,taosExplorer
组件提供 HTTP 服务对外访问。在 /etc/taos/explorer.toml
配置文件中修改如下配置:
[ssl]
# SSL certificate file
certificate = "/path/to/ca.file"# SSL certificate private key
certificate_key = "/path/to/key.file"
之后,使用 HTTPS 进行 Explorer 访问,如 https://192.168.12.34 。
taosxAgent
taosX 启用 HTTPS 后,Agent 组件与 taosx 之间使用 HTTP 2 加密连接,使用 Arrow-Flight RPC 进行数据交换,传输内容是二进制格式,且仅注册过的 Agent 连接有效,保障数据安全。
建议在不安全网络或公共网络环境下的 Agent 服务,始终开启 HTTPS 连接。
taosKeeper
taosKeeper 使用 WebSocket 连接与 taosadpater 通信,将其他组件上报的监控信息写入 TDengine。
taosKeeper
当前版本存在安全风险:
- 监控地址不可限制在本机,默认监控 所有地址的 6043 端口,存在网络攻击风险。使用 Docker 或 Kubernetes 部署不暴露 taosKeeper 端口时,此风险可忽略。
- 配置文件中配置明文密码,需要降低配置文件可见性。在
/etc/taos/taoskeeper.toml
中存在:
[tdengine]
host = "localhost"
port = 6041
username = "root"
password = "taosdata"
usessl = false
安全增强
我们建议使用在局域网内部使用 TDengine。
如果必须在局域网外部提供访问,请考虑添加以下配置:
负载均衡
使用负载均衡对外提供 taosAdapter 服务。
以 Nginx 为例,配置多节点负载均衡:
http {server {listen 6041;location / {proxy_pass http://websocket;# Headers for websocket compatibleproxy_http_version 1.1;proxy_set_header Upgrade $http_upgrade;proxy_set_header Connection $connection_upgrade;# Forwarded headersproxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;proxy_set_header X-Forwarded-Proto $scheme;proxy_set_header X-Forwarded-Host $host;proxy_set_header X-Forwarded-Port $server_port;proxy_set_header X-Forwarded-Server $hostname;proxy_set_header X-Real-IP $remote_addr;}}upstream websocket {server 192.168.11.61:6041;server 192.168.11.62:6041;server 192.168.11.63:6041;}
}
如果 taosAdapter 组件未配置 SSL 安全连接,还需要配置 SSL 才能保证安全访问。SSL 可以配置在更上层的 API Gateway,也可以配置在 Nginx 中;如果你对各组件之间的安全性有更强的要求,您可以在所有组件中都配置 SSL。Nginx 配置如下:
http {server {listen 443 ssl;ssl_certificate /path/to/your/certificate.crt;ssl_certificate_key /path/to/your/private.key;}
}
安全网关
在现在互联网生产系统中,安全网关使用也很普遍。traefik 是一个很好的开源选择,我们以 traefik 为例,解释在 API 网关中的安全配置。
Traefik 中通过 middleware 中间件提供多种安全配置,包括:
- 认证(Authentication):Traefik 提供 BasicAuth、DigestAuth、自定义认证中间件、OAuth 2.0 等多种认证方式。
- IP 白名单(IPWhitelist):限制允许访问的客户端 IP。
- 频率限制(RateLimit):控制发送到服务的请求数。
- 自定义 Headers:通过自定义 Headers 添加
allowedHosts
等配置,提高安全性。
一个常见的中间件示例如下:
labels:- "traefik.enable=true"- "traefik.http.routers.tdengine.rule=Host(`api.tdengine.example.com`)"- "traefik.http.routers.tdengine.entrypoints=https"- "traefik.http.routers.tdengine.tls.certresolver=default"- "traefik.http.routers.tdengine.service=tdengine"- "traefik.http.services.tdengine.loadbalancer.server.port=6041"- "traefik.http.middlewares.redirect-to-https.redirectscheme.scheme=https"- "traefik.http.middlewares.check-header.headers.customrequestheaders.X-Secret-Header=SecretValue"- "traefik.http.middlewares.check-header.headers.customresponseheaders.X-Header-Check=true"- "traefik.http.middlewares.tdengine-ipwhitelist.ipwhitelist.sourcerange=127.0.0.1/32, 192.168.1.7"- "traefik.http.routers.tdengine.middlewares=redirect-to-https,check-header,tdengine-ipwhitelist"
上面的示例完成以下配置:
-
TLS 认证使用
default
配置,这个配置可使用配置文件或 traefik 启动参数中配置,如下:traefik: image: "traefik:v2.3.2" hostname: "traefik" networks: - traefik command: - "--log.level=INFO" - "--api.insecure=true" - "--providers.docker=true" - "--providers.docker.exposedbydefault=false" - "--providers.docker.swarmmode=true" - "--providers.docker.network=traefik" - "--providers.docker.watch=true" - "--entrypoints.http.address=:80" - "--entrypoints.https.address=:443" - "--certificatesresolvers.default.acme.dnschallenge=true" - "--certificatesresolvers.default.acme.dnschallenge.provider=alidns" - "--certificatesresolvers.default.acme.dnschallenge.resolvers=ns1.alidns.com" - "--certificatesresolvers.default.acme.email=linhehuo@gmail.com" - "--certificatesresolvers.default.acme.storage=/letsencrypt/acme.json"
上面的启动参数配置了 default
TSL 证书解析器和自动 acme 认证(自动证书申请和延期)。
-
中间件
redirect-to-https
:配置从 HTTP 到 HTTPS 的转发,强制使用安全连接。- "traefik.http.middlewares.redirect-to-https.redirectscheme.scheme=https"
-
中间件
check-header
:配置自定义 Headers 检查。外部访问必须添加自定义 Header 并匹配 Header 值,避免非法访问。这在提供 API 访问时是一个非常简单有效的安全机制。 -
中间件
tdengine-ipwhitelist
:配置 IP 白名单。仅允许指定 IP 访问,使用 CIDR 路由规则进行匹配,可以设置内网及外网 IP 地址。
总结
数据安全是 TDengine 产品的一项关键指标,这些措施旨在保护 TDengine 部署免受未经授权的访问和数据泄露,同时保持性能和功能。但 TDengine 自身的安全配置不是生产中的唯一保障,结合用户业务系统制定更加匹配客户需求的解决方案更加重要。
相关文章:
TDengine 安全部署配置建议
背景 TDengine 的分布式、多组件特性导致 TDengine 的安全配置是生产系统中比较关注的问题。本文档旨在对 TDengine 各组件及在不同部署方式下的安全问题进行说明,并提供部署和配置建议,为用户的数据安全提供支持。 安全配置涉及组件 TDengine 包含多…...
Grafana当前状态:SingleStat面板
Grafana的SingleStat面板是一种用于展示单个关键指标(KPI)的可视化组件,特别适合需要突出显示核心业务指标的场景(如实时销售额、在线用户数、系统错误率等)。它通过简洁的布局和丰富的样式选项,帮助用户快速聚焦核心数据。Singlem Panel侧重于展示系统的…...
专题五:floodfill算法(太平洋大西洋水流问题)
以leetcode417题为例 题目解析: 整张图,左边深蓝的是太平洋,右边浅蓝的是大西洋,你需要在矩阵中找到一个点,使其可以流向太平洋又可以流向大西洋,并且你每次流的时候只能由高到低,或者相等到相…...
【HTML】【面试提问】HTML面试提问总结
第一章 HTML基础相关提问 1.1 HTML基本概念 1.1.1 什么是HTML HTML 即超文本标记语言(HyperText Markup Language)😎,它是用于创建网页的标准标记语言。简单来说,HTML 就像是搭建房屋的砖块🧱࿰…...
解锁MySQL性能调优:高级SQL技巧实战指南
高级SQL技巧:解锁MySQL性能调优的终极指南 开篇 当前,随着业务系统的复杂化和数据量的爆炸式增长,数据库性能调优成为了技术人员面临的核心挑战之一。尤其是在高并发、大数据量的场景下,SQL 查询的性能直接影响到整个系统的响应…...
数据分析与应用---数据可视化基础
目录 Matplotlib基础绘图 (一)、pyplot绘图基础语法与常用参数 1、pyplot基础语法 (1) 创建画布与创建子图 (2) 添加画布内容 (3) 保存与显示图形 案例代码 2. 设置pyplot的动态…...
android双屏之副屏待机显示图片
摘要:android原生有双屏的机制,但需要芯片厂商适配框架后在底层实现。本文在基于芯发8766已实现底层适配的基础上,仅针对上层Launcher部分对系统进行改造,从而实现在开机后副屏显示一张待机图片。 副屏布局 由于仅显示一张图片&…...
oracle序列自增问题
1.先查询表名对应的序列名称 SELECT trigger_name, trigger_type, triggering_event FROM all_triggers WHERE table_name 表名;2. 查询id最大值 SELECT MAX(ID) FROM 表名;3. 查询下一次生成ID SELECT SJCJ_ENERGY_DATA_INSERTID.NEXTVAL FROM DUAL;4. 设置临时步长,越过…...
FLASHDB API分析
fdb_kvdb_init 函数详解 fdb_kvdb_init 是 FlashDB 框架中用于 初始化键值数据库(KVDB) 的核心接口,其功能涵盖底层存储配置、默认数据加载与多模式适配。以下从功能、参数、使用场景及注意事项展开分析: 一、功能与作用 …...
使用 ABP vNext 集成 MinIO 构建高可用 BLOB 存储服务
🚀 使用 ABP vNext 集成 MinIO 构建高可用 BLOB 存储服务 本文基于 ABP vNext MinIO 的对象存储集成实践,系统讲解从 MinIO 部署、桶创建、ABP 集成、上传 API、安全校验、预签名访问,到测试、扩展及多租户支持的全过程。目标是构建一套可复…...
3.安卓逆向2-安卓文件目录
免责声明:内容仅供学习参考,请合法利用知识,禁止进行违法犯罪活动! 内容参考于:图灵Python学院 上一个内容:2.安卓逆向2-adb指令 首先使用adb连接到手机,如下图使用adb命令列出手机的目录&am…...
云原生时代的系统可观测性:理念变革与实践体系
📝个人主页🌹:慌ZHANG-CSDN博客 🌹🌹期待您的关注 🌹🌹 一、引言:为什么可观测性在云原生时代变得更加重要? 传统应用系统运行于固定服务器,拓扑结构稳定、依赖路径清晰,排查故障依赖日志和人工经验已足够支撑运维。但在云原生环境中,系统正快速演变为: 微…...
力扣网-复写零
1.题目要求 2.题目链接 1089. 复写零 - 力扣(LeetCode) 3.题目解答 class Solution {public void duplicateZeros(int[] arr) {int cur0,dest-1,narr.length;while(cur<n){//遇到0就dest走两步if(arr[cur]0){dest2;}//遇到非零元素dest就走一步els…...
高项-挣值管理TCPI
TCPI(完工尚需绩效指数)的英文全称及含义 TCPI 是项目管理(尤其是挣值管理EVM, Earned Value Management)中的一个关键指标,其英文全称为: To-Complete Performance Index 中文译为**“完工尚需绩效指数”…...
Java大厂面试三轮问答:微服务与数据库技术深度解析
Java大厂面试:谢飞机的三轮挑战 第一轮:微服务基础与电商场景设计 面试官: "谢飞机,假设我们要设计一个电商平台,需要支持用户下单、支付以及订单追踪。你会如何设计微服务架构?" 谢飞机: "呃&#…...
Linux 移植 Docker 详解
一、移植前的环境准备 在将 Docker 移植到 Linux 系统之前,需要确保系统满足一定的条件,以保证 Docker 能够稳定运行。 1. 操作系统版本要求 Docker 对 Linux 操作系统版本有一定的要求,不同的 Docker 版本适配不同的 Linux 发行版及版本。常…...
滑动验证码缺口识别与自动化处理技术解析
在如今的网络安全环境中,滑动验证码作为一种主流的人机验证方案,被广泛应用。它的核心挑战主要集中在两个方面:一是如何准确地识别出缺口位置,二是如何模拟出逼真的拖动轨迹。 一、缺口识别技术方案 (一)…...
C++字符串处理:`std::string`和`std::string_view`的区别与使用
在 C中,std::string和std::string_view都用于处理字符串,但它们的用途和性能特点有很大不同。本教程将通过代码示例和流程图,帮助你快速掌握它们的使用方法。 1.什么是std::string和std::string_view? 1.1std::string std::str…...
Uniapp中动态控制scroll-view滚动的方式
在Uniapp 4.45中,动态修改scroll-view的scroll-left属性时无法触发滚动(直接设置scroll-left属性值没问题),这通常是因为数据更新与 DOM 渲染之间的异步特性导致的。知道了原因,但是直接修改scroll-left属性值还是失败…...
手机怎么查看网络ip地址?安卓/iOS设备查询指南
在移动互联网时代,IP地址作为设备的网络身份证,无论是网络调试、远程连接还是排查故障都至关重要。本文将系统介绍安卓和iOS设备查看IP地址的多种方法,帮助您快速掌握这一实用技能。 一、安卓手机查看IP地址方法 1、通过WiFi设置查看 打开设…...
R语言+贝叶斯网络:涵盖贝叶斯网络的基础、离散与连续分布、混合网络、动态网络,Gephi可视化,助你成为数据分析高手!
🔍 在现代生态、环境及地学研究中,变量及其因果关系的推断是核心课题之一。然而,传统的因果关系研究通常依赖于昂贵的实验,而实验结果往往与天然环境中的实际因果联系存在较大偏差。例如,在生态系统中,物种…...
手机内存不够,哪些文件可以删?
1️⃣应用缓存文件 安卓:通过「文件管理器」→「Android」→「data」或「cache」文件夹(部分需权限),或直接在应用设置中清除缓存 iOS:无需手动清理,系统会自动管理,或在应用内设置中清除&…...
C语言之 比特(bit)、字节(Byte)、字(Word)、整数(Int)
在C语言中,经常出现上述的概念,即比特(bit)、字节(Byte)、字(Word)、整数(Int)。查看C语言标准,比特(bit)的定义如下&…...
组态王通过开疆智能profinet转ModbusTCP网关连接西门子PLC配置案例
本案例是组态王通过使用开疆智能研发的Profinet转ModbusTCP网关采集西门子1200PLC中数据的案例。 网关配置 首先来配置网关的参数,打开网关配置软件“Gateway Configuration Studio” 由于组态王那侧设定为ModbusTCP客户端所以网关作为ModbusTCP服务器。新建项目…...
GO语言学习(五)
GO语言学习(五) 前面我们已经学了一些关于golang的基础知识,从这一期开始,我们就来讲解一下基于golang为后端的web开发,首先这一期为一些golang为后端的web开发基础讲解,我们将会从web的工作方式、golang如…...
Supermemory:让大模型拥有“长效记忆“
目录 引言:打破大语言模型的记忆瓶颈,迎接AI交互新范式 一、Supermemory 核心技术 1.1 透明代理机制 1.2 智能分段与检索系统 1.3 自动Token管理 二、易用性 三、性能与成本 四、可靠性与兼容性 五、为何选择 Supermemory? 六、对…...
Hooks实现原理与自定义Hooks
React Hooks 是 React 16.8 引入的一种机制,允许在函数组件中使用状态(state)、副作用(effect)等功能,而无需编写 class 组件。其核心原理是通过闭包和链表结构,在 React 的 Fiber 架构中管理组…...
【NLP】35. 构建高质量标注数据
如何构建高质量标注数据?大语言模型背后的那只“看不见的手” 在讨论大语言模型(LLM)性能突破时,人们总是聚焦在模型参数、结构设计和训练技巧上。但真正懂行的人都知道——再好的模型也离不开一手好数据,尤其是那些“…...
2024CCPC吉林省赛长春邀请赛 Java 做题记录
目录 I. The Easiest Problem G. Platform Game L. Recharge E. Connected Components I. The Easiest Problem 签到题 直接输出 21 即可 // github https://github.com/Dddddduo // github https://github.com/Dddddduo/acm-java-algorithm // github https://github.com/…...
黑马程序员C++2024新版笔记 第三章 数组
1.数组定义 数组是一批相同类型的元素(element)的集合组成的数据结构。 声明语法: <数据类型> <数组名> [<数组长度>] int v[6] // 声明了可以存放6个int数字的数组 数组的每个元素有编号,称之为下标索引…...
Golang的网络安全策略实践
Golang的网络安全策略实践 一、理解网络安全的重要性 当今的网络环境中,安全问题日益突出,各种类型的攻击如雨后春笋般涌现,给个人和组织的信息资产造成了严重威胁。因此,制定和实施有效的网络安全策略至关重要。 二、Golang在网络…...
SAP学习笔记 - 开发13 - CAP 之 添加数据库支持(Sqlite)
上一章学习了CAP开发准备,添加Service。 SAP学习笔记 - 开发12 - CAP 之 开发准备,添加服务-CSDN博客 本章继续学习CAP开发 - 添加数据库支持(Sqlite)。 目录 1,数据库准备 - H2 内存数据库 - Sqlite数据库 a&…...
DRIVEGPT4: 通过大语言模型实现可解释的端到端自动驾驶
《DriveGPT4: Interpretable End-to-End Autonomous Driving via Large Language Model》 2024年10月发表,来自香港大学、浙江大学、华为和悉尼大学。 多模态大型语言模型(MLLM)已成为研究界关注的一个突出领域,因为它们擅长处理…...
LLM最后怎么输出值 解码语言模型:从权重到概率的奥秘
LM Head Weights(语言模型头部权重):左侧的“LM Head Weights”表示语言模型头部的权重矩阵,它是模型参数的一部分。权重矩阵与输入数据进行运算。Logits(未归一化对数概率):经过与LM Head Weig…...
Better Faster Large Language Models via Multi-token Prediction 原理
目录 模型结构: Memory-efficient implementation: 实验: 1. 在大规模模型上效果显著: 2. 在不同类型任务上的效果: 为什么MLP对效果有提升的几点猜测: 1. 并非所有token对生成质量的影响相同 2. 关…...
【NLP】34. 数据专题:如何打造高质量训练数据集
构建大语言模型的秘密武器:如何打造高质量训练数据集? 在大语言模型(LLM)如 GPT、BERT、T5 爆发式发展的背后,我们常常关注模型架构的演化,却忽视了一个更基础也更关键的问题:训练数据从哪里来…...
uniapp 微信小程序 获取openId
嗨,我是小路。今天主要和大家分享的主题是“uniapp 微信小程序 获取openId”。 一、主要属性 1.uni.login 二、实例代码 1、前端代码 uni.login({provider: weixin,success: (res) > {uni.showLoading({title: 登录中...,mask: true})let code res.…...
企业标准信息公共服务平台已开放标准通编辑器访问入口
标准通 数字化标准编辑器 专业、高效、便捷 企业标准信息公共服务平台 近日,企业标准信息公共服务平台已开放标准通编辑器访问入口,可进入官网指定版块使用! 核心功能亮点 解决企业痛点 传统标准编制,需反复核对格式、逐条…...
小米MUJIA智能音频眼镜来袭
智能眼镜赛道风云再起,小米新力作MIJIA智能音频眼镜2正式亮相,引发市场热议。 这款产品在设计和功能上都有显著提升,为用户带来更舒适便捷的佩戴体验,同时也标志着小米在智能眼镜领域的持续深耕。 轻薄设计,舒适体验 …...
Node.js 实战八:服务部署方案对比与实践
你开发好了接口,准备上线,然后开始犹豫: “直接 node app.js 启就行了吗?” “要不要用 PM2?听说 Docker 更稳?” “Serverless 是不是就不用管服务器了?” 部署是从“能运行”到“能长久运行”…...
地下水安全监测实施方案
一、方案目标 本方案的核心目标在于构建一个全方位、科学严谨且高效运转的地下水监测体系,旨在实现对地下水资源全方位的动态监测、科学化的管理和有效的保护。监测的具体目标涵盖了地下水位、流量以及水质等多个关键性指标,通过精准的数据采集和分析&am…...
HTTP由浅入深
概述 超文本传输协议(HTTP, Hypertext Transfer Protocol) 是一种用于传输超媒体文档(例如 HTML)的应用层协议。它最初被设计用于 Web 浏览器与 Web 服务器之间的通信,但也广泛应用于其他客户端与服务器的交互。 HTT…...
Conda 环境下安装 GCC 和 glibc (crypt.h) 教程
Conda 环境下安装 GCC 和 glibc (crypt.h) 教程 由于运行Low-Light Image Enhancement via Structure Modeling and Guidance原始论文代码,发现服务器的gcc版本太老,没法运行。同时缺少libxcrypt (crypt.h),不得不询问gpt进行解答。发现可以…...
C++面试3——const关键字的核心概念、典型场景和易错陷阱
const关键字的核心概念、典型场景和易错陷阱 一、const本质:类型系统的守护者 1. 与#define的本质差异 维度#defineconst编译阶段预处理替换编译器类型检查作用域无作用域(全局污染)遵循块作用域调试可见性符号消失保留符号信息类型安全无类…...
超小多模态视觉语言模型MiniMind-V 训练
简述 MiniMind-V 是一个超适合初学者的项目,让你用普通电脑就能训一个能看图说话的 AI。训练过程就像教小孩:先准备好图文材料(数据集),教它基础知识(预训练),再教具体技能…...
深入理解仿函数(Functors):从概念到实践
文章目录 1. 什么是仿函数?2. 仿函数与普通函数的区别3. 标准库中的仿函数4. 仿函数的优势4.1 状态保持4.2 可定制性4.3 性能优势 5. 现代C中的仿函数5.1 Lambda表达式5.2 通用仿函数 6. 仿函数的高级应用(使用C2020标准库及以上版本)6.1 函数…...
第二届parloo杯的RSA_Quartic_Quandary
(害,还是太菜了,上去秒了一道题之后就动不了了,今晚做个记录,一点点的往回拾起吧) # from Crypto.Util.number import getPrime, bytes_to_long # import math # # FLAG b************** # # # def gene…...
团队氛围紧张,如何提升工作积极性?
当团队氛围长期处于紧张状态时,员工的积极性、创造力和凝聚力会显著下降。要有效提升工作积极性,应从建设心理安全环境、优化管理沟通方式、提升认可与激励机制、加强情感联结与归属感等方面系统改善。其中,建设心理安全环境是最重要的基础&a…...
vuex的基本使用
个人简介 👨💻个人主页: 魔术师 📖学习方向: 主攻前端方向,正逐渐往全栈发展 🚴个人状态: 研发工程师,现效力于政务服务网事业 🇨🇳人生格言&…...
chrome因使用selenium无图模式导致不再加载图片问题解决
因为使用了selenium的无图模式访问chrome的本地用户数据导致正常使用chrome访问网页时图片不加载。现在页面出现验证码,验证码显示不了。 第一步:关闭所有chrome 第二步:找到Perferences文件 文件的目录为:C:\Users\用户名\AppDa…...