实战指南:为达梦数据库构建端到端SSL加密通信
1. 为什么你的达梦数据库通信需要“上锁”想象一下你每天都要通过邮局寄送一批非常重要的商业合同。这些合同包含了公司的核心数据比如客户信息、交易金额、未来计划。你会选择把合同直接写在明信片上寄出去还是会用一个带锁的、坚固的保密文件袋并且只有你和收件人有钥匙答案显而易见。在数字世界里达梦数据库和你常用的客户端工具比如管理工具、应用程序之间的通信就像这些“明信片”。默认情况下数据在网络中以明文形式传输。任何一个能够接触到网络链路的人比如在同一个不安全的Wi-Fi下或者通过一些网络嗅探工具都有可能像偷看明信片一样轻松地看到甚至篡改你的数据库用户名、密码、执行的SQL语句以及返回的敏感数据。这对于生产环境来说无疑是巨大的安全隐患。SSL/TLS加密就是为这条通信通道加上的那把“锁”和那个“保密文件袋”。它主要解决了三个核心问题保密性就像给通信内容加了密只有持有正确密钥的双方才能读懂即使数据被截获看到的也是一堆乱码。完整性确保数据在传输过程中没有被篡改。如果中途有人想偷偷修改一个数字接收方立刻就能发现并拒绝。身份验证服务器端并可选择客户端确保你连接的是真正的数据库服务器而不是一个伪装成服务器的“钓鱼”站点。这通过数字证书来实现就像验证邮局的官方印章一样。我经历过一次内部安全演练红队仅仅通过抓取一个测试环境的网络包就还原出了完整的业务SQL和测试账号。虽然只是测试环境但也足以让人惊出一身冷汗。从那时起为所有关键数据库服务启用SSL加密就成了我们上线前的硬性规定。对于达梦数据库虽然配置步骤稍显繁琐但一旦跑通就是一劳永逸的安全加固。接下来我就带你从零开始亲手为你的达梦数据库打造一套端到端的SSL加密通信体系。2. 开工前的准备理清思路与备齐工具在开始敲命令之前我们得先搞清楚我们要构建一个什么样的“安全体系”。简单来说我们会扮演一个“迷你数字证书认证中心CA”的角色然后为我们自己的数据库服务器和客户端颁发“身份证”数字证书。整个流程可以概括为以下几个关键步骤我画了一个简单的示意图来帮你理解想象我们自己在建立一个公司的内部安全部门建立根CA创建我们自己的“证书认证中心”生成一对核心的“根密钥”和“根证书”。这是所有信任的源头。为服务器颁发证书用根CA为数据库服务器生成一个证书里面包含了服务器的公钥和身份信息如域名/IP并由根CA私钥签名。这样客户端只要信任我们的根CA就会信任这个服务器证书。为客户端颁发证书可选但推荐同样用根CA为需要连接数据库的客户端或用户生成证书。这样可以实现双向认证不仅客户端验证服务器服务器也验证客户端安全性更高。配置达梦数据库告诉数据库服务器使用我们为它颁发的证书和私钥。配置客户端告诉客户端工具信任我们的根CA并使用自己的客户端证书去连接。需要准备的工具和环境如下OpenSSL这是整个过程的基石一个强大的密码学工具包用于生成密钥、证书、签名等。我们将在Windows环境下演示。达梦数据库当然是已经安装好的并且你知道其安装路径例如D:\dmdbms。JDK因为达梦数据库的某些工具如keytool和Java应用连接可能需要用到Java环境。安装后确保JAVA_HOME环境变量已设置。一个干净的目录建议新建一个专门的工作目录比如D:\DM_SSL所有操作都在这里进行避免文件散落各处。这里特别提一下OpenSSL的安装很多人第一步就踩坑。官网下载Windows版本时注意不要安装到C:\Program Files或C:\Program Files (x86)这类路径。因为路径中包含空格后续一些脚本或命令在引用路径时可能会解析错误导致“Permission denied”等看似权限问题实则路径问题的报错。我个人的习惯是安装到C:\OpenSSL-Win64这样的根目录下简单直接。安装完成后务必将OpenSSL的bin目录如C:\OpenSSL-Win64\bin添加到系统的PATH环境变量中并新建一个系统环境变量OPENSSL_CONF指向其配置文件openssl.cfg如C:\OpenSSL-Win64\bin\openssl.cfg。这样可以在任何命令行窗口直接调用openssl命令。3. 第一步创建我们自己的“证书颁发机构”CA现在我们正式开工。首先打开命令行窗口CMD切换到你的工作目录比如D:\DM_SSL。我们将在这里创建所有文件。3.1 初始化CA的目录结构CA需要一些固定的目录和文件来记录它颁发的证书。我们手动创建这些结构。你可以逐条执行以下命令# 创建一个名为 ca 的文件夹作为我们CA的根目录 mkdir ca # 在ca下创建 newcerts 文件夹用于存放所有颁发出去的证书副本 mkdir ca\newcerts # 在ca下创建 private 文件夹用于存放CA最核心的私钥必须严格保密 mkdir ca\private # 创建 index.txt 文件这是一个证书数据库记录所有已签发证书的信息 type nul ca\index.txt # 创建 serial 文件并写入初始序列号 01。每签发一个证书这个序列号会自动递增。 echo 01 ca\serial执行完后你的ca目录结构应该是这样的D:\DM_SSL\ └── ca ├── index.txt ├── newcerts ├── private └── serial3.2 生成CA的根密钥和自签名根证书接下来生成CA自己的“身份证明”。这包括一个私钥cakey.pem和一个自签名的根证书cacert.pem。私钥必须绝对保密而根证书将分发给所有需要信任我们CA的客户端和服务器。执行以下命令一条命令需要交互输入信息为了自动化我们可以用-subj参数预设openssl req -new -x509 -days 3650 -keyout ca\private\cakey.pem -out ca\cacert.pem -subj /CCN/STBeijing/LBeijing/OMyCompany/OUIT/CNMyCompany Root CA/emailAddresscamycompany.com命令参数解读req -new -x509生成一个新的X.509格式证书请求-x509表示直接输出一个自签名证书而不是请求。-days 3650证书有效期10年。对于内部使用的根CA可以设长一些。-keyout指定生成的CA私钥存放路径和文件名。我们把它放在ca\private下更安全。-out指定生成的CA根证书存放路径和文件名。-subj指定证书主题信息避免交互式输入。你需要根据自己情况修改/CCN国家中国。/STBeijing省份。/LBeijing城市。/OMyCompany组织名称。/OUIT部门。/CNMyCompany Root CA通用名称这里作为CA的名称可以清晰标识。emailAddress邮箱。执行过程中它会要求你为CA私钥设置一个通行短语pass phrase。这个密码非常重要请务必牢记并安全保存。以后每次用这个CA私钥签名证书时都需要输入。假设我们这里设置为MyCAPass123。完成后检查ca\private目录下有了cakey.pemca目录下有了cacert.pem。恭喜你的“迷你CA”已经搭建完成了4. 第二步为达梦数据库服务器颁发“身份证”服务器证书用于向客户端证明“我是真正的数据库服务器”。生成过程分为三步生成服务器私钥、生成证书签名请求CSR、用CA私钥对CSR进行签名生成最终证书。4.1 生成服务器私钥和证书签名请求CSR首先在工作目录D:\DM_SSL下执行# 生成一个2048位的RSA私钥不加密-out后面没有-des3等参数方便服务器启动时直接读取 openssl genrsa -out server_key.pem 2048 # 使用刚生成的私钥创建证书签名请求(CSR) openssl req -new -key server_key.pem -out server.csr -subj /CCN/STBeijing/LBeijing/OMyCompany/OUDBServer/CNdb-server.mycompany.com/emailAddressdbamycompany.com关键点注意server_key.pem是服务器的私钥需要保密。达梦数据库服务进程会读取它。CSR文件server.csr中的CN通用名称至关重要。它必须是客户端连接数据库时使用的主机名或IP地址。例如如果你的客户端用jdbc:dm://192.168.1.100:5236连接那么CN最好设置为192.168.1.100。如果使用域名连接则设置为域名。如果不匹配客户端在验证时会报错“证书主机名不匹配”。在生产中这里通常设置服务器的FQDN全限定域名。4.2 使用CA为服务器CSR签名生成服务器证书现在用我们自建的CA来签署这个请求生成正式的服务器证书。# 签署证书有效期设为365天 openssl ca -days 365 -in server.csr -out server_cert.pem -cert ca\cacert.pem -keyfile ca\private\cakey.pem执行这条命令时会要求你输入之前设置的CA私钥通行短语MyCAPass123。然后会询问你是否要签署和提交输入y确认即可。这里可能会遇到一个经典错误Unable to load CA private key或Error opening CA private key。这通常是因为命令默认去./demoCA目录下找CA的文件而我们CA的目录结构是./ca。所以我们上面命令中通过-cert和-keyfile显式指定了CA证书和私钥的路径避免了这个问题。命令执行成功后会生成server_cert.pem。同时ca\index.txt和ca\serial文件会被更新ca\newcerts目录下也会多出一个以序列号命名的证书副本文件如01.pem。这说明我们的CA成功记录了一次证书颁发。4.3 为达梦数据库准备服务器端SSL文件达梦数据库服务器端需要几个特定的文件。我们需要将相关文件整理到一个文件夹中方便后续配置。转换证书格式达梦可能需要特定格式的证书。将PEM格式的证书转换为DER格式二进制有时是必要的或者直接使用PEM。我们这里准备PEM格式。# 实际上 server_cert.pem 已经是PEM格式无需转换。但我们可以确保一下。 # 创建一个服务器端专用的文件夹 mkdir server_ssl # 将服务器证书、私钥、以及CA的根证书拷贝进去 copy server_cert.pem server_ssl\ copy server_key.pem server_ssl\ copy ca\cacert.pem server_ssl\关键一步合并证书链针对某些情况。有些客户端或数据库服务需要完整的证书链。我们可以创建一个包含服务器证书和CA根证书的文件。# 将服务器证书和CA根证书按顺序合并到一个文件 type server_cert.pem ca\cacert.pem server_ssl\server_chain.pem现在server_ssl文件夹里应该有server_cert.pem,server_key.pem,cacert.pem,server_chain.pem。5. 第三步为客户端如SYSDBA用户颁发“身份证”为了实现更安全的双向认证服务器也验证客户端我们需要为每个数据库用户或客户端应用颁发客户端证书。这里以管理员SYSDBA为例。5.1 生成客户端私钥和CSR为每个客户端创建独立的目录是个好习惯。# 为SYSDBA用户创建一个目录 mkdir client_sysdba # 生成客户端私钥 openssl genrsa -out client_sysdba\client_key.pem 2048 # 生成客户端CSR。注意CN字段这里我们设置为用户名SYSDBA也可以设置为客户端主机名。 openssl req -new -key client_sysdba\client_key.pem -out client_sysdba\client.csr -subj /CCN/STBeijing/LBeijing/OMyCompany/OUClient/CNSYSDBA/emailAddresssysdbamycompany.com5.2 使用CA签署客户端证书openssl ca -days 365 -in client_sysdba\client.csr -out client_sysdba\client_cert.pem -cert ca\cacert.pem -keyfile ca\private\cakey.pem同样输入CA私钥密码MyCAPass123并确认签署。5.3 将客户端证书转换为达梦客户端工具需要的格式达梦的客户端工具如Manager、DIsql和JDBC驱动通常使用Java KeystoreJKS或PKCS#12格式来存储客户端证书和信任的CA。我们需要进行转换。将客户端证书和私钥打包为PKCS#12格式openssl pkcs12 -export -in client_sysdba\client_cert.pem -inkey client_sysdba\client_key.pem -out client_sysdba\client.p12 -name sysdba_client -passout pass:changeit-passout pass:changeit设置了PKCS12文件的密码为changeit。这个密码很重要后续导入到Keystore时需要。changeit是Java默认的keystore密码建议使用方便记忆。这个.p12文件包含了客户端的完整身份信息证书私钥。创建Java KeystoreJKS并导入信任的CA和客户端身份 首先将我们自签的CA根证书导入到一个新的Keystore建立信任。keytool -import -alias mycompany_ca -file ca\cacert.pem -keystore client_sysdba\client.keystore -storepass changeit -noprompt-alias mycompany_ca给CA证书起个别名。-storepass changeit设置Keystore的存储密码这里也设为changeit与p12文件密码保持一致方便管理。-noprompt非交互模式直接信任导入的证书。然后将客户端PKCS12格式的身份导入到同一个Keystore。keytool -importkeystore -srckeystore client_sysdba\client.p12 -srcstoretype PKCS12 -srcstorepass changeit -destkeystore client_sysdba\client.keystore -deststoretype JKS -deststorepass changeit -noprompt现在client_sysdba目录下关键的客户端文件是client.keystoreJKS格式和client.p12PKCS12格式。同时把CA根证书也拷贝一份给客户端用于某些需要单独指定信任证书的场景。copy ca\cacert.pem client_sysdba\6. 第四步在达梦数据库中配置SSL证书都准备好了现在该让数据库服务用起来了。这里假设你的达梦数据库安装在D:\dmdbms。6.1 放置服务器端SSL文件将之前准备好的server_ssl整个文件夹拷贝到达梦数据库安装目录的bin子目录下。例如D:\dmdbms\bin\server_ssl\ ├── server_cert.pem ├── server_key.pem ├── cacert.pem └── server_chain.pem6.2 修改数据库服务器配置文件达梦数据库的SSL配置主要在dm.ini和dmmal.ini如果使用MAL通信中。我们主要修改dm.ini。找到你的数据库实例的dm.ini文件通常在数据目录下如D:\dmdbms\data\DAMENG\dm.ini。用文本编辑器打开找到或添加以下参数[SSL] SSL_ENCRYPT 1 # 启用SSL加密1为启用0为关闭 SSL_KEY_PATH server_ssl/server_key.pem # 服务器私钥文件路径相对于bin目录或绝对路径 SSL_CERT_PATH server_ssl/server_chain.pem # 服务器证书链文件路径我们之前合并的 SSL_CA_PATH server_ssl/cacert.pem # 受信任的CA证书文件路径用于验证客户端证书双向认证时需要 SSL_VERIFY_PEER 1 # 是否验证客户端证书。1为验证双向认证0为不验证仅服务器认证 SSL_CIPHER ALL # 加密套件ALL表示支持所有也可指定如 AES256-SHA配置解读与避坑指南SSL_KEY_PATH和SSL_CERT_PATH这两个是必须正确配置的。路径可以是相对路径相对于dm.ini所在目录但更常见是相对于bin目录为了清晰我建议使用从bin目录开始的相对路径如上所示。SSL_VERIFY_PEER如果你只希望服务器向客户端证明自己单向认证这里设为0并且SSL_CA_PATH可以不配置。如果你希望服务器也验证客户端双向认证更安全则设为1并且SSL_CA_PATH必须指向你的CA根证书cacert.pem。权限问题确保运行达梦数据库服务的系统账户如dmdba有权限读取server_ssl目录及其下的所有文件。在Linux上要特别注意在Windows上通常问题不大但也要检查。6.3 重启数据库服务配置修改保存后需要重启达梦数据库服务才能使SSL配置生效。通过Windows服务管理器或命令行net stop DmServiceDMSERVER/net start DmServiceDMSERVER重启你的达梦数据库实例。7. 第五步配置客户端并验证加密连接服务器端配置好了现在来测试客户端连接。7.1 使用达梦管理工具Manager进行SSL连接拷贝客户端文件将client_sysdba文件夹拷贝到客户端机器上某个位置例如C:\DM_Certs\client_sysdba。配置连接打开达梦管理工具。新建或修改一个数据库连接。在“连接信息”选项卡填写服务器地址、端口默认5236、用户名SYSDBA。关键步骤切换到“SSL”选项卡或“高级”选项里。勾选“启用SSL”。SSL验证模式如果服务器配置了SSL_VERIFY_PEER1双向认证这里选择“要求验证”如果服务器是单向认证可以选择“不验证”或“请求验证”。客户端证书选择PKCS12格式的证书文件即client.p12并输入密码changeit。客户端私钥密码同上输入changeit。对于PKCS12文件证书和私钥密码通常相同。信任证书选择或添加CA根证书cacert.pem。测试连接点击“测试连接”或“确定”。如果配置正确应该能成功连接。7.2 使用DIsql命令行工具连接DIsql也支持SSL连接参数。# 假设 disql 在 PATH 中或者你切换到 dmdbms\bin 目录下执行 disql SYSDBA/SYSDBA192.168.1.100:5236 -ssl_pathC:\DM_Certs\client_sysdba -ssl_pwdchangeit -ssl_mode1-ssl_path指向包含client.keystore或client.p12以及cacert.pem的目录。-ssl_mode1表示启用SSL并验证服务器证书。具体参数可能因达梦版本略有差异请参考官方文档disql --help。7.3 如何验证通信确实被加密了最直观的方法就是抓包。你可以使用 Wireshark 等网络抓包工具。在未启用SSL的情况下抓取客户端到数据库端口5236的流量很可能能看到明文协议头甚至部分SQL语句。在启用SSL并成功连接后再次抓取相同端口的流量。你会看到协议变成了TLSv1.2或TLSv1.3并且应用层数据全部是加密的乱码无法解析出任何SQL内容。这就是SSL在起作用的最有力证明。另外也可以在达梦数据库内部查看会话信息。连接成功后执行SQLSELECT SESSID, CLIENT_IP, SSL_CIPHER FROM V$SESSIONS WHERE USERNAMESYSDBA;如果SSL_CIPHER列显示非空值如ECDHE-RSA-AES256-GCM-SHA384则说明该会话正在使用SSL加密通信。8. 实战中可能遇到的“坑”与解决方案这条路我走过也踩过不少坑。下面分享几个最常见的坑1证书的CN字段与连接地址不匹配现象客户端连接时报错“SSL peer certificate validation failed”或“主机名验证失败”。原因生成服务器证书CSR时-subj参数中的/CN设置的值与客户端实际连接数据库时使用的主机名或IP地址不一致。解决重新生成服务器CSR和证书确保CN字段设置为客户端连接时使用的准确地址。对于多主机名或IP的环境可以使用**主题备用名称SAN**扩展但这需要修改OpenSSL配置文件比较复杂。内部环境用IP或固定域名最简单。坑2文件路径或权限问题现象数据库服务启动失败日志中提示“无法打开SSL密钥文件”或“权限被拒绝”。原因dm.ini中配置的SSL文件路径错误或者运行数据库服务的系统账户没有读取这些文件的权限。解决使用绝对路径最保险如SSL_KEY_PATH D:\dmdbms\bin\server_ssl\server_key.pem。检查文件权限。在Windows上确保“Everyone”或对应服务账户有读取权限。在Linux上确保dmdba用户对证书和私钥文件有读权限chmod 600或chmod 640并且私钥文件不能被其他用户读取。坑3证书格式问题现象配置都对了但连接时提示“无效的证书”或“无法解析证书”。原因达梦数据库或客户端工具可能对证书格式有特定要求。例如可能需要PEM格式-----BEGIN CERTIFICATE-----开头而你可能误用了DER格式。解决确保你的证书文件是PEM格式文本格式可读。可以用文本编辑器打开server_cert.pem看看。如果不是用OpenSSL转换openssl x509 -in certificate.der -inform DER -out certificate.pem -outform PEM。坑4双向认证配置混淆现象服务器要求验证客户端SSL_VERIFY_PEER1但客户端没有提供证书导致连接被拒绝。原因服务器端和客户端配置模式不匹配。解决明确你的安全需求。单向认证仅服务器认证服务器SSL_VERIFY_PEER0客户端连接时只需提供信任的CA证书cacert.pem验证服务器即可无需提供客户端证书。双向认证服务器和客户端互相认证服务器SSL_VERIFY_PEER1且SSL_CA_PATH指向CA证书。客户端连接时必须提供自己的客户端证书如.p12或.keystore和对应的密码。坑5证书过期现象某天突然所有SSL连接都失败了。原因服务器或客户端证书过期了。我们之前生成时设置了有效期服务器365天CA是3650天。解决定期检查证书有效期。可以在证书过期前用相同的CA重新签发新的证书然后替换旧文件并重启服务。建议建立内部证书管理流程记录签发和过期时间。为达梦数据库配置SSL加密通信初次接触会觉得步骤繁多但本质上就是扮演一次CA然后完成“发证-领证-用证”的过程。一旦你成功配置过一次后续无非就是重复和优化。这套自签名的SSL方案对于绝大多数内部系统、测试环境和安全要求较高的生产环境隔离区域来说已经完全足够。它最大的价值在于以可控的成本和复杂度为你的数据库通信链路加上了一道坚实的防护门。

相关新闻

DASD-4B-Thinking模型分布式推理:多GPU并行计算配置

DASD-4B-Thinking模型分布式推理:多GPU并行计算配置

DASD-4B-Thinking模型分布式推理:多GPU并行计算配置 1. 引言 如果你正在处理大规模AI推理任务,单张GPU可能已经无法满足你的需求。当模型参数达到40亿级别,比如DASD-4B-Thinking这样的思考型大语言模型,传统的单卡推理往往会遇到…

2026/7/4 12:39:27 阅读更多 →
GHelper技术解析:硬件性能动态调节的轻量化实现

GHelper技术解析:硬件性能动态调节的轻量化实现

GHelper技术解析:硬件性能动态调节的轻量化实现 【免费下载链接】g-helper Lightweight Armoury Crate alternative for Asus laptops. Control tool for ROG Zephyrus G14, G15, G16, M16, Flow X13, Flow X16, TUF, Strix, Scar and other models 项目地址: htt…

2026/7/5 12:44:52 阅读更多 →
SolidWorks设计文档智能化:MiniCPM-V-2_6自动生成零部件说明与装配指南

SolidWorks设计文档智能化:MiniCPM-V-2_6自动生成零部件说明与装配指南

SolidWorks设计文档智能化:MiniCPM-V-2_6自动生成零部件说明与装配指南 1. 引言 想象一下这个场景:你刚刚在SolidWorks里完成了一个复杂组件的三维建模,从草图到特征,每一步都倾注了心血。模型本身很完美,但接下来&a…

2026/5/17 7:26:32 阅读更多 →

最新新闻

Devin工程化落地:AI协作者如何嵌入CI/CD与测试流水线

Devin工程化落地:AI协作者如何嵌入CI/CD与测试流水线

1. 项目概述:这不是一个“AI编程助手”的简单测评,而是一次对工程化落地边界的实战测绘“Software Development With Devin: Integrations, Testing, and CI/CD (Part 3)”——这个标题里藏着三个被绝大多数AI编程类内容刻意绕开的硬核关键词&#xff1a…

2026/7/5 13:44:13 阅读更多 →
行业领先·审查通过·高性能|运营商行业数据库审计和监测最佳实践指南

行业领先·审查通过·高性能|运营商行业数据库审计和监测最佳实践指南

一、方案概要:数据化落地的全周期数据库安全治理体系【提示】本段立足运营商数字化转型全局,聚焦产品核心特性与落地成效,系统性概述方案核心价值与行业定位。在数字基建升级与数据合规强监管态势下,电信运营商数据库安全治理成为…

2026/7/5 13:42:12 阅读更多 →
踩坑3周,我在实验室内网搭了个零公网请求的论文AIGC筛查本地系统

踩坑3周,我在实验室内网搭了个零公网请求的论文AIGC筛查本地系统

搞AIGC内容本地筛查的这三周我人都麻了,之前先后试了GPTZero、Originality.ai、团象AIGC检测、Crossplag、Copyscape、PaperPass旗下的AI检测,全不好用。这些工具要么强制要求把全文上传公网服务器,要么对理工科论文的公式部分误判率高到离谱…

2026/7/5 13:42:12 阅读更多 →
11、<简单>有一个六位数,其个位数字7,现将个位数字移至首位(十万位),而其余各位数字顺序不变,均后退一位,得到一个新的六位数,假如新数为I旧数的4倍,求原来的六位数

11、<简单>有一个六位数,其个位数字7,现将个位数字移至首位(十万位),而其余各位数字顺序不变,均后退一位,得到一个新的六位数,假如新数为I旧数的4倍,求原来的六位数

#include <iostream> using namespace std;int main() {// old 是原六位数&#xff0c;个位固定为7for (long old 100007; old < 999997; old 10){// 拆分前5位long front old / 10;// 个位7移到十万位&#xff0c;生成新六位数long newNum 700000 front;// 判断…

2026/7/5 13:40:12 阅读更多 →
终极精简指南:使用PowerShell脚本让Windows 11瘦身50%

终极精简指南:使用PowerShell脚本让Windows 11瘦身50%

终极精简指南&#xff1a;使用PowerShell脚本让Windows 11瘦身50% 【免费下载链接】tiny11builder Scripts to build a trimmed-down Windows 11 image. 项目地址: https://gitcode.com/GitHub_Trending/ti/tiny11builder 你是否曾为Windows 11那臃肿的系统体积和缓慢的…

2026/7/5 13:40:12 阅读更多 →
从《中国统计年鉴》到可比数据:手把手教你计算不变价GDP

从《中国统计年鉴》到可比数据:手把手教你计算不变价GDP

1. 为什么需要计算不变价GDP&#xff1f; 我第一次接触GDP数据时&#xff0c;发现一个奇怪现象&#xff1a;某城市2000年GDP是1000亿元&#xff0c;2020年GDP是8000亿元&#xff0c;看起来增长了8倍。但老师告诉我&#xff0c;这个比较毫无意义&#xff0c;因为没考虑物价变化。…

2026/7/5 13:40:12 阅读更多 →

日新闻

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容

B站视频下载神器BiliTools&#xff1a;5分钟学会轻松保存任何B站内容 【免费下载链接】BiliTools A cross-platform bilibili toolbox. 跨平台哔哩哔哩工具箱&#xff0c;支持下载视频、番剧等等各类资源 项目地址: https://gitcode.com/GitHub_Trending/bilit/BiliTools …

2026/7/5 0:03:34 阅读更多 →
威胁模型全解析:从新手入门到实战应用,助你构建安全产品!

威胁模型全解析:从新手入门到实战应用,助你构建安全产品!

威胁模型的陌生现状在忙碌疲惫的一天里&#xff0c;参与了关于混合后量子密码学的讨论&#xff0c;应付端点攻击找茬的人&#xff0c;还参与留言板讨论后&#xff0c;发现“威胁模型”对多数人仍是陌生概念&#xff0c;且多被当作时髦用语。有趣的相关画作有一幅由 Embyr 创作的…

2026/7/5 0:03:34 阅读更多 →
渗透测试入门指南:从零基础到实战环境搭建

渗透测试入门指南:从零基础到实战环境搭建

1. 从“看热闹”到“入门”&#xff1a;我理解的渗透测试到底是什么&#xff1f;每次看到新闻里说某个大公司的数据被“黑”了&#xff0c;或者某个网站被攻击导致服务瘫痪&#xff0c;你是不是和我一样&#xff0c;心里会冒出两个念头&#xff1a;一是“这黑客真厉害”&#x…

2026/7/5 0:07:38 阅读更多 →

周新闻

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容

B站视频下载神器BiliTools&#xff1a;5分钟学会轻松保存任何B站内容 【免费下载链接】BiliTools A cross-platform bilibili toolbox. 跨平台哔哩哔哩工具箱&#xff0c;支持下载视频、番剧等等各类资源 项目地址: https://gitcode.com/GitHub_Trending/bilit/BiliTools …

2026/7/5 0:03:34 阅读更多 →
威胁模型全解析:从新手入门到实战应用,助你构建安全产品!

威胁模型全解析:从新手入门到实战应用,助你构建安全产品!

威胁模型的陌生现状在忙碌疲惫的一天里&#xff0c;参与了关于混合后量子密码学的讨论&#xff0c;应付端点攻击找茬的人&#xff0c;还参与留言板讨论后&#xff0c;发现“威胁模型”对多数人仍是陌生概念&#xff0c;且多被当作时髦用语。有趣的相关画作有一幅由 Embyr 创作的…

2026/7/5 0:03:34 阅读更多 →
渗透测试入门指南:从零基础到实战环境搭建

渗透测试入门指南:从零基础到实战环境搭建

1. 从“看热闹”到“入门”&#xff1a;我理解的渗透测试到底是什么&#xff1f;每次看到新闻里说某个大公司的数据被“黑”了&#xff0c;或者某个网站被攻击导致服务瘫痪&#xff0c;你是不是和我一样&#xff0c;心里会冒出两个念头&#xff1a;一是“这黑客真厉害”&#x…

2026/7/5 0:07:38 阅读更多 →

月新闻