首页/新闻资讯/正文详情

面试笔记:数据加密和心跳机制

发布时间:2026/11/5 23:33:03 来源:云帆数科 栏目:资讯中心
面试笔记:数据加密和心跳机制
一、数据库中的数据加密数据库加密并不是一个开关而是多层防护。不同方式解决的是不同类型的风险。1. 连接加密TLS/SSL连接加密主要用于防止数据在网络传输过程中被抓包或窃听。客户端和数据库之间开启 TLS/SSL 后网络上传输的是密文。即使有人抓包看到的也只是无法直接理解的数据。它主要防的是网络抓包链路窃听中间人攻击但前提是证书校验正确。2. 表空间加密表空间加密指的是数据库文件落盘时进行加密。例如 MySQL 的.ibd文件中的数据页可以被加密。即使攻击者把整个数据库文件复制走也不能直接读取其中的数据。它的优点是应用代码基本不需要修改。但它也有局限如果有人拥有数据库账号并且有SELECT权限那么他仍然可以通过 SQL 查询到明文数据也可能通过逻辑导出拿走数据。所以表空间加密主要解决的是“数据库物理文件泄露”而不是“高权限账号滥用”。3. 字段加密对于手机号、身份证号、银行卡号等敏感数据可以单独进行字段加密。MySQL 可以使用AES_ENCRYPT()和AES_DECRYPT()。示例SET block_encryption_mode aes-256-cbc; SET key_str SHA2(my_secret_key, 512); SET iv RANDOM_BYTES(16); INSERT INTO user_secure(username, phone_cipher, phone_iv) VALUES ( zhangsan, AES_ENCRYPT(13812345678, key_str, iv), iv ); SELECT username, CAST(AES_DECRYPT(phone_cipher, key_str, phone_iv) AS CHAR) AS phone FROM user_secure;实际生产环境中更推荐由应用层或专业密钥管理服务管理密钥而不是把密钥和密文都放在同一个数据库中。另外同一个明文如果每次使用随机 IV加密结果不同是正常的而且更安全。4. 密文加哈希检索字段字段加密后通常无法直接进行等值查询或模糊搜索。例如手机号加密后如果还要根据手机号查用户可以额外保存一个哈希检索字段。常见做法是保存加密后的手机号用于展示或解密保存手机号的 HMAC 哈希用于等值查询查询时对输入手机号做同样的 HMAC 计算再查询哈希字段。不要直接使用普通 SHA-256 保存手机号因为手机号取值空间较小容易被枚举反查。5. 密码不能加密只能哈希密码不应该使用 AES 等可逆加密算法保存。因为一旦密钥泄露所有密码都可能被解密。密码校验只需要判断“输入是否正确”不需要恢复原始密码。因此密码应该使用专门的慢速、带盐哈希算法例如Argon2idbcryptscrypt总结一句话传输加密防抓包表空间加密防文件泄露字段加密防明文存储密码必须使用专用哈希。二、什么是心跳机制心跳机制就是客户端和服务器之间定期发送一个很小的数据包用来证明“我还活着连接还正常”。可以理解为客户端每隔几秒告诉服务器一次“我还在线。”服务器收到后就更新这个连接的最后活跃时间。如果服务器在一段时间内没有收到任何消息就认为客户端可能掉线了。心跳机制的主要作用检测连接是否仍然可用防止 NAT、代理、网关等中间设备回收空闲连接及时发现掉线用户更新在线状态清理无效连接释放服务端资源。WebSocket 协议本身定义了 Ping/Pong 控制帧优先使用框架提供的 Ping/Pong 能力。浏览器原生 WebSocket API 不能直接发送协议级 Ping 时也可以定义应用层的heartbeat消息。一个常见策略客户端每 2030 秒发送一次心跳服务端记录lastActiveAt如果连续 23 个周期没有收到消息则关闭连接超时时间要结合网关、Nginx、负载均衡的空闲超时一起配置。三、心跳机制问题排查排查心跳问题时先分成两类心跳不正常心跳包没有正常收发心跳正常连接还活着但业务消息仍然有问题。心跳不正常时怎么排查1. 客户端有没有发送检查浏览器网络面板、客户端日志和定时器。注意浏览器进入后台、手机省电模式、系统休眠时定时器可能会被暂停或降频。2. 服务端有没有收到服务端日志中应该记录用户 ID连接 ID服务节点 ID心跳接收时间消息类型不要只打印“收到心跳”这种无法关联用户的信息。3. 服务端有没有正确处理或返回检查消息类型是否一致JSON 序列化和反序列化是否正确心跳处理是否抛异常Ping/Pong 或 ACK 的返回逻辑是否正常。4. 超时时间是否合理客户端的发送周期、服务端的超时时间、网关的超时时间必须匹配。例如客户端每 30 秒发送一次心跳而服务端 20 秒就判定超时那么一定会频繁误判掉线。5. Nginx、网关、负载均衡是否提前断开很多线上问题并不是代码问题而是代理层超时配置问题。重点检查Nginx 的proxy_read_timeout网关空闲超时负载均衡连接超时CDN 是否支持 WebSocket防火墙或 NAT 是否回收空闲连接6. 服务端扫描逻辑有没有 Bug重点检查时间单位是秒还是毫秒超时判断是否写反遍历连接时是否有并发问题用户重连后旧连接关闭时是否误删了新连接关闭连接后在线状态是否正确更新。心跳正常但业务仍然有问题怎么办如果心跳一直正常说明连接大概率还活着但不代表业务消息一定发送成功或展示正确。此时应该继续排查房间状态是否正确用户是否还在正确的房间或订阅中Redis 中的在线状态是否被旧连接覆盖消息队列是否积压、消费失败或重复消费多个 WebSocket 节点之间是否完成消息广播客户端是否收到了消息但状态管理或渲染逻辑没有更新。线上排查最好让每条消息带上可关联字段requestId messageId userId connectionId nodeId timestamp这样才能把一条消息从“客户端发送”到“网关转发”再到“服务端接收、消息广播、客户端展示”的完整链路串起来。十、总结心跳机制解决的是连接是否存活但不能保证业务消息一定正确送达。数据库加密也不是一个单点能力而是传输加密、存储加密、字段加密、权限控制和密钥管理共同组成的安全体系。面试时不要只回答“是什么”还要能说明它解决什么问题它的优点和代价是什么它的适用边界在哪里出问题时如何排查。真正的工程能力往往就体现在这些追问里。

相关推荐

小白程序员必备:2025Q3 AI100榜单 Agent 产品深度解析与收藏指南
小白程序员必备:2025Q3 AI100榜单 Agent 产品深度解析与收藏指南

本文深入分析了2025Q3 AI100榜单中的Agent产品,探讨了智能体技术在优化和应用落地方面的进展。文章指出,Agent产品正从单点智能化工作向系统化智能协作发展,并在科研、投资等领域嵌入业务流程解决痛点。榜单中的7款Agent产品,如Ki… · 2026/11/4 18:09:43

安卓录音时拍照会记录具体时间点吗?
安卓录音时拍照会记录具体时间点吗?

开录音的时候顺手拍了张板书,之后想从音频里找到讲这块板书的部分,结果发现图片只有拍摄时间,没有任何办法对应到录音的哪一秒。这个情况挺常见的。问题的根源在系统层面。安卓相机拍照时会自动往图片文件里写EXIF元数据,里面有时… · 2026/11/3 0:08:11

BTree
BTree

目录 一、常见的搜索结构 二、B树概念 三、B树的插入分析 四、B树的实现 4.1 B树的节点设计 4.2 插入key的过程 4.3 B树的插入实现 4.4 B树的简单验证 4.5 B树的删除 4.5.1 删除36 4.5.2 删除40 4.5.3 删除49 4.5.4 删除150 4.5.5 删除180 4.5.6 删除160 4.5.7… · 2026/11/2 7:28:16

EasyU优启通PE维护盘实战指南:制作、启动与核心操作全解析
EasyU优启通PE维护盘实战指南:制作、启动与核心操作全解析

1. 为什么一个PE维护盘值得单独拿出来聊装系统、修引导、救数据、清病毒,这些活儿但凡干过几次的人都知道,真正决定效率的往往不是你手速多快,而是手边那套PE环境靠不靠谱。EasyU(圈内习惯叫优启通)就是在这个场景下被… · 2026/11/5 16:49:35

Rust原来很简单二:所有权系统
Rust原来很简单二:所有权系统

Part 2 核心篇 —— 所有权系统 本篇覆盖 第 6 ~ 10 章:所有权、借用与引用、生命周期、字符串与切片、内存模型。 ⚠️ 这是全书最重要的一篇。 把它吃透,Rust 从此“很简单”;跳过它,你会处处碰壁。请慢下来,动手敲每一段代码。 第 6 章 所有权:Rust 的第一性原理 6… · 2026/11/5 16:26:08

基于Hadoop+Spark的民宿智能推荐系统设计与实现
基于Hadoop+Spark的民宿智能推荐系统设计与实现

1. 项目概述:大数据时代的民宿智能推荐这个毕业设计项目融合了当前大数据领域最主流的技术栈,构建了一个完整的民宿推荐系统解决方案。作为一名长期从事大数据系统开发的工程师,我认为这个选题非常贴合实际应用场景——随着旅游业的复苏和共享… · 2026/11/5 14:59:25

ADS122U04IPWR+STM32F427ZI工业级温度测量信号链设计
ADS122U04IPWR+STM32F427ZI工业级温度测量信号链设计

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/5 14:10:41

UART接口24位ADC搭配RS485,解决远距离温度监控难题
UART接口24位ADC搭配RS485,解决远距离温度监控难题

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/5 14:10:41

UART接口24位ADC搭配PIC18F46K22的RTD与热电偶测温实践
UART接口24位ADC搭配PIC18F46K22的RTD与热电偶测温实践

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/5 14:10:41

双极步进电机控制实战:DRV8818PWPR与PIC18F86K22驱动调试
双极步进电机控制实战:DRV8818PWPR与PIC18F86K22驱动调试

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/5 10:27:59

STM32F207ZG + DRV8818PWPR 步进电机驱动实战解析
STM32F207ZG + DRV8818PWPR 步进电机驱动实战解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/5 10:28:03

DRV8818PWPR+dsPIC30F4013工业级双极步进电机控制方案
DRV8818PWPR+dsPIC30F4013工业级双极步进电机控制方案

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/5 10:28:07

多智能体协作系统架构设计与实践优化
多智能体协作系统架构设计与实践优化

1. 多智能体协作系统的时代背景2017年Transformer架构的诞生彻底改变了人工智能的发展轨迹。当行业还沉浸在单一大模型带来的性能突破时,Anthropic的研究团队已经将目光投向了更前沿的领域——如何让多个智能体通过协作产生超越单体能力的系统智能。这就像交响乐团中… · 2026/11/5 0:00:39

大模型系统性入门实战指南:从原理到部署微调的全链路路线
大模型系统性入门实战指南:从原理到部署微调的全链路路线

提到大模型的系统性入门,我先说个结论:这事真不难,难的是资料太散、路线太多,今天这个框架明天那个工具,新人很容易在“收藏夹吃灰”和“教程看到一半放弃”之间反复横跳。市面上关于大模型的内容少说有几十万篇&#… · 2026/11/5 0:00:39

鸿蒙文件系统沙箱机制解析与开发实践
鸿蒙文件系统沙箱机制解析与开发实践

1. 鸿蒙文件系统沙箱机制深度解析作为一名从Android转向鸿蒙开发的工程师,我深刻体会到文件系统访问是迁移过程中最先遇到的"拦路虎"。在Android上运行良好的文件读写代码,在鸿蒙真机环境却频频出现文件写入后神秘消失或直接抛出权限拒绝错误的… · 2026/11/5 0:00:39

双极步进电机控制实战:DRV8818PWPR与PIC18F86K22驱动调试
双极步进电机控制实战:DRV8818PWPR与PIC18F86K22驱动调试

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/5 10:27:59

STM32F207ZG + DRV8818PWPR 步进电机驱动实战解析
STM32F207ZG + DRV8818PWPR 步进电机驱动实战解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/5 10:28:03

DRV8818PWPR+dsPIC30F4013工业级双极步进电机控制方案
DRV8818PWPR+dsPIC30F4013工业级双极步进电机控制方案

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/5 10:28:07

了解更多?预约专属演示

我们的顾问将为您一对一讲解产品与方案

企业微信二维码