当前位置:首页>java>(ICME 2025) 一行代码拯救水印鲁棒性:LAWMM 如何让扩散水印“自己学会藏在哪”

(ICME 2025) 一行代码拯救水印鲁棒性:LAWMM 如何让扩散水印“自己学会藏在哪”

  • 2026-02-02 07:35:09
(ICME 2025) 一行代码拯救水印鲁棒性:LAWMM 如何让扩散水印“自己学会藏在哪”

题目:KGMark: ADiffusion Watermark for Knowledge Graphs

论文地址:https://arxiv.org/pdf/2505.23873

20+细分方向粉丝互助交流群

扫描下方二维码,快来进群交流吧!

聚焦学术/科研互助交流,共享常用论文数据集 & baseline 模型,分享最新前沿模型复现,讨论更多发论文技巧

                                                                                (1)首次将扩散水印(Diffusion Watermark)引入知识图谱嵌入(KGE)领域

                                                                                • 以往扩散水印主要用于 图像 / 文本 / 潜变量

                                                                                • KGMark 首次将 DDIM 反演 + 频域水印 用于 知识图谱嵌入空间

                                                                                (2)提出 Learnable Adaptive Watermark Mask Matrix(LAWMM)

                                                                                • 一个 可学习的掩码矩阵

                                                                                • 在频域中 自适应选择水印注入位置

                                                                                • 在 可检测性(detectability)与透明性(transparency)之间取得平衡

                                                                                (3)提出“社区级 + 节点级”的冗余嵌入策略,应对结构攻击

                                                                                • 将水印 同时嵌入多个社区(Community Layer)和关键节点(Vertex Layer)

                                                                                • 提升对 子图删除、关系修改、结构扰动 的鲁棒性

                                                                                (4)提出基于图对齐(Graph Alignment)的同构防御机制

                                                                                • 通过 度数 + 聚类系数排序 对图进行规范化

                                                                                • 解决 节点重排 / 图同构攻击导致水印失效 的问题

                                                                                (5)提出基于统计显著性的水印检测方法(Likelihood-based Verification)

                                                                                • 基于 非中心 χ² 分布

                                                                                • 输出 p-value,而不是简单相似度阈值

                                                                                • 满足可解释、可审计的版权检测需求

                                                                                整体结构

                                                                                     KGMark 通过图神经网络将知识图谱嵌入到连续潜在空间,并利用 DDIM 的可逆扩散特性,将水印以频域噪声的形式嵌入到潜变量中。为在不破坏知识图谱语义的前提下增强鲁棒性,模型引入可学习的自适应掩码矩阵控制水印注入位置,并在社区级与节点级进行冗余嵌入以抵御结构扰动。同时,通过图对齐机制消除节点重排带来的同构影响,最终使用基于统计显著性的似然检验实现可靠、可解释的水印检测

                                                                                                                                            (1)Graph Encoder(VAE + GNN)

                                                                                                                                            • 使用 RGAT / GCN / GAT 等图神经网络

                                                                                                                                            • 将原始 KG 映射到 连续潜在空间 Z₀

                                                                                                                                            (2)DDIM 扩散反演(Inversion)

                                                                                                                                            • 对 Z₀ 做 DDIM 反演,得到噪声表示 Zᵀᴵᴺⱽ

                                                                                                                                            • 为“可控嵌入水印”提供入口

                                                                                                                                            (3)频域水印嵌入(FFT-based)

                                                                                                                                            • 对 Zᵀᴵᴺⱽ 做 FFT

                                                                                                                                            • 在 LAWMM 掩码控制的频段 注入水印签名 S

                                                                                                                                            • 再通过 IFFT 得到水印噪声 Zᵀʷ

                                                                                                                                            (4)反向扩散 + 解码

                                                                                                                                            • 通过 DDIM reverse process 得到 Z₀ʷ

                                                                                                                                            • 解码得到 水印知识图谱 Gʷ

                                                                                                                                            (5)攻击与防御模块

                                                                                                                                            • 攻击:关系修改 / 子图删除 / 平滑 / 同构

                                                                                                                                            • 防御:社区冗余嵌入 + 图对齐

                                                                                                                                            (6)水印检测模块

                                                                                                                                            • 从攻击后图中反演噪声

                                                                                                                                            • 基于 χ² 检验计算 p-value

                                                                                                                                            • 判断是否存在水印

                                                                                                                                            LAWMM 是一个用于潜在空间水印注入的可学习掩码模块,能够在不破坏语义的前提下,自适应选择最稳健的嵌入位置,从而显著提升水印在噪声与结构攻击下的可检测性与鲁棒性,适用于扩散模型、图嵌入与生成模型等连续潜变量场景

                                                                                                                                                适用场景:

                                                                                                                                                          ① 需要在“连续潜在空间”中嵌入信息、但又不允许破坏语义结构的场景

                                                                                                                                                          典型场景包括:

                                                                                                                                                          • 知识图谱嵌入(KGE) 的版权保护

                                                                                                                                                          • 图生成 / 图重构模型 的水印或指纹注入

                                                                                                                                                          • 扩散模型、VAE、AutoEncoder 等连续潜变量框架

                                                                                                                                                          在这些场景中,潜变量不同维度对语义的重要性并不相同,如果盲目注入扰动,极易破坏下游任务性能。LAWMM 正是为这种“敏感潜空间”设计的。


                                                                                                                                                          ② 需要在“可检测性 vs 透明性”之间做自适应权衡的水印场景

                                                                                                                                                          LAWMM 特别适用于以下约束并存的情况:

                                                                                                                                                          • 水印 必须能被稳定检测(detectable)

                                                                                                                                                          • 同时 对模型性能影响必须极小(transparent)

                                                                                                                                                          例如:

                                                                                                                                                          • KGE 的 Link Prediction / Entity Classification

                                                                                                                                                          • 图生成任务中的 结构保持与语义一致性

                                                                                                                                                          传统固定 mask 或人工规则很难同时满足这两点,而 LAWMM 可以 通过训练自动学习最优嵌入区域


                                                                                                                                                          ③ 存在多种未知攻击形式、需要水印“自适应防御”的场景

                                                                                                                                                          LAWMM 非常适合面对以下攻击不确定性的应用:

                                                                                                                                                          • 子图删除(subgraph removal)

                                                                                                                                                          • 关系扰动(edge / relation modification)

                                                                                                                                                          • 嵌入平滑、噪声注入

                                                                                                                                                          • 潜在空间重排

                                                                                                                                                          因为 LAWMM 不是固定位置嵌入,而是根据训练反馈学习“哪些频段 / 维度在攻击下仍然稳定”,因此适合 黑盒攻击或未知攻击假设 的版权保护环境

                                                                                                                                                          模块作用:

                                                                                                                                                                                                                      ① 自适应选择“最安全”的水印嵌入位置

                                                                                                                                                                                                                      LAWMM 的核心作用是:

                                                                                                                                                                                                                      在潜在空间(通常是频域)中,学习哪些维度既不影响语义,又能最大化水印可检测性。

                                                                                                                                                                                                                      它通过可学习参数动态决定:

                                                                                                                                                                                                                      • 哪些频率 / 维度 允许注入水印

                                                                                                                                                                                                                      • 哪些区域 必须保护,避免扰动

                                                                                                                                                                                                                      相比人工设定的低频 / 高频规则,LAWMM 更精细、更稳健。


                                                                                                                                                                                                                      ② 显著提升水印在结构扰动与噪声攻击下的鲁棒性

                                                                                                                                                                                                                      由于 LAWMM 会在训练中经历:

                                                                                                                                                                                                                      • 扰动

                                                                                                                                                                                                                      • 重建误差

                                                                                                                                                                                                                      • 水印检测反馈

                                                                                                                                                                                                                      最终学到的 mask 往往对应 “攻击不敏感区域”,从而使水印在以下情况下仍可被提取:

                                                                                                                                                                                                                      • KG 结构被部分破坏

                                                                                                                                                                                                                      • 嵌入被平滑或压缩

                                                                                                                                                                                                                      • 下游任务微调后


                                                                                                                                                                                                                      ③ 将水印嵌入过程从“规则设计”升级为“可学习优化问题”

                                                                                                                                                                                                                      LAWMM 本质上做了一件非常关键的事:

                                                                                                                                                                                                                      把水印注入位置的选择,从 heuristic 设计,变成端到端可训练的一部分。

                                                                                                                                                                                                                      这使得它:

                                                                                                                                                                                                                      • 可以 直接插入现有扩散 / VAE / 图模型中

                                                                                                                                                                                                                      • 不依赖特定数据集或人工经验

                                                                                                                                                                                                                      • 可以迁移到其他任务与模型结构


                                                                                                                                                                                                                      ④ 天然具备“即插即用”属性

                                                                                                                                                                                                                      从工程角度看,LAWMM 具有非常强的通用性:

                                                                                                                                                                                                                      • 只作用在 潜变量上

                                                                                                                                                                                                                      • 不依赖具体的 Encoder / Decoder 结构

                                                                                                                                                                                                                      • 不改变原模型的输入输出接口

                                                                                                                                                                                                                      需要:

                                                                                                                                                                                                                      1. 有一个连续 latent 表示

                                                                                                                                                                                                                      2. 有一个损失函数能反馈“水印是否好用”

                                                                                                                                                                                                                      就可以直接插入 LAWMM

                                                                                                                                                                                                                      from __future__ import annotations
                                                                                                                                                                                                                      import torch
                                                                                                                                                                                                                      import torch.nn.functional as F

                                                                                                                                                                                                                      def learn_lawmm_mask(
                                                                                                                                                                                                                          inversed_steps_latents: torch.Tensor,
                                                                                                                                                                                                                          sample_steps_latents: torch.Tensor,
                                                                                                                                                                                                                          signature_fft: torch.Tensor,
                                                                                                                                                                                                                          sample_steps=(51015),
                                                                                                                                                                                                                          threshold: float = 0.91,
                                                                                                                                                                                                                          num_learning_epoch: int = 50,
                                                                                                                                                                                                                      lr: float = 0.02,
                                                                                                                                                                                                                          show_progress: bool = False,
                                                                                                                                                                                                                      ) -> torch.Tensor:
                                                                                                                                                                                                                      """
                                                                                                                                                                                                                          Learn the LAWMM binary mask (frequency-domain adaptive mask).

                                                                                                                                                                                                                          Args:
                                                                                                                                                                                                                              inversed_steps_latents: [T_inv, B, C, H, W] inversion latents.
                                                                                                                                                                                                                              sample_steps_latents:   [T_sam, B, C, H, W] sampling latents.
                                                                                                                                                                                                                              signature_fft: complex tensor, broadcastable to [B, C, H, W].
                                                                                                                                                                                                                              sample_steps: which time steps to use as constraints (1-based in original impl).
                                                                                                                                                                                                                              threshold: sigmoid(p) > threshold -> True.
                                                                                                                                                                                                                              num_learning_epoch: optimization steps for mask logits p.
                                                                                                                                                                                                                      lr: Adam lrforp.
                                                                                                                                                                                                                              show_progress:if True, show a tqdm progress bar (if installed).

                                                                                                                                                                                                                          Returns:
                                                                                                                                                                                                                              final_mask: bool tensor with shape [B, C, H, W].
                                                                                                                                                                                                                      """
                                                                                                                                                                                                                      if inversed_steps_latents.ndim != 5or sample_steps_latents.ndim != 5:
                                                                                                                                                                                                                              raise ValueError("Expected latents with shape [T, B, C, H, W].")

                                                                                                                                                                                                                          device = inversed_steps_latents.device
                                                                                                                                                                                                                          T_inv, B, C, H, W = inversed_steps_latents.shape

                                                                                                                                                                                                                          # ---- Step indices (match original logic) ----
                                                                                                                                                                                                                          step_idx_x = torch.tensor([int(i) - 1for i in sample_steps], device=device, dtype=torch.long)
                                                                                                                                                                                                                          step_idx_y = (T_inv - 1) - torch.tensor([int(i) for i in sample_steps], device=device, dtype=torch.long)

                                                                                                                                                                                                                      if (step_idx_x.min() < 0or (step_idx_x.max() >= sample_steps_latents.shape[0]):
                                                                                                                                                                                                                              raise ValueError("sample_steps out of range for sample_steps_latents.")
                                                                                                                                                                                                                      if (step_idx_y.min() < 0or (step_idx_y.max() >= inversed_steps_latents.shape[0]):
                                                                                                                                                                                                                              raise ValueError("sample_steps out of range for inversed_steps_latents.")

                                                                                                                                                                                                                          # ---- IMPORTANT: FFT safety => doall FFT math in float32/complex64 ----
                                                                                                                                                                                                                          x_list = sample_steps_latents.index_select(0, step_idx_x).detach().float() # [K,B,C,H,W] float32
                                                                                                                                                                                                                      y = inversed_steps_latents.index_select(0, step_idx_y).detach().float() # [K,B,C,H,W] float32

                                                                                                                                                                                                                          # ---- Broadcast signature_fft to [B,C,H,W] and ensure complex64 ----
                                                                                                                                                                                                                      sig = signature_fft
                                                                                                                                                                                                                      if not torch.is_complex(sig):
                                                                                                                                                                                                                              raise TypeError("signature_fft must be a complex tensor (torch.complex64/128).")

                                                                                                                                                                                                                      ifsig.ndim == 2:
                                                                                                                                                                                                                      sig = sig[None, None, :, :] # [1,1,H,W]
                                                                                                                                                                                                                          elif sig.ndim == 3:
                                                                                                                                                                                                                      sig = sig[None, :, :, :] # [1,C,H,W]
                                                                                                                                                                                                                          elif sig.ndim != 4:
                                                                                                                                                                                                                              raise ValueError("signature_fft must have shape [H,W] or [C,H,W] or [B,C,H,W].")

                                                                                                                                                                                                                      ifsig.shape[-2:] != (H, W):
                                                                                                                                                                                                                              raise ValueError(f"signature_fft spatial size {sig.shape[-2:]} != latents {(H,W)}")
                                                                                                                                                                                                                      ifsig.shape[1] not in (1, C):
                                                                                                                                                                                                                              raise ValueError(f"signature_fft channel dim must be 1 or {C}, got {sig.shape[1]}")
                                                                                                                                                                                                                      ifsig.shape[0] not in (1, B):
                                                                                                                                                                                                                              raise ValueError(f"signature_fft batch dim must be 1 or {B}, got {sig.shape[0]}")

                                                                                                                                                                                                                      sig = sig.to(device=device)
                                                                                                                                                                                                                          # Force to complex64 for stable FFT ops
                                                                                                                                                                                                                      ifsig.dtype != torch.complex64:
                                                                                                                                                                                                                      sig = sig.to(torch.complex64)
                                                                                                                                                                                                                      sig = sig.expand(B, C, H, W).detach() # [B,C,H,W] complex64

                                                                                                                                                                                                                          # ---- Learn mask logits p in float32 (Adam + stability) ----
                                                                                                                                                                                                                      p = torch.rand((B, C, H, W), device=device, dtype=torch.float32, requires_grad=True)
                                                                                                                                                                                                                      opt = torch.optim.Adam([p], lr=float(lr))

                                                                                                                                                                                                                          it = range(int(num_learning_epoch))
                                                                                                                                                                                                                      if show_progress:
                                                                                                                                                                                                                      try:
                                                                                                                                                                                                                                  from tqdm import tqdm
                                                                                                                                                                                                                                  it = tqdm(it, total=int(num_learning_epoch))
                                                                                                                                                                                                                              except Exception:
                                                                                                                                                                                                                                  pass

                                                                                                                                                                                                                      for _ in it:
                                                                                                                                                                                                                              loss = 0.0
                                                                                                                                                                                                                              mask_soft = torch.sigmoid(p) # float32

                                                                                                                                                                                                                      fork in range(x_list.shape[0]):
                                                                                                                                                                                                                      x = x_list[k] # float32 [B,C,H,W]
                                                                                                                                                                                                                                  # FFT -> complex64
                                                                                                                                                                                                                      X = torch.fft.fft2(x)

                                                                                                                                                                                                                                  X_prime = mask_soft * sig + (1.0 - mask_soft) * X
                                                                                                                                                                                                                                  x_prime = torch.fft.ifft2(X_prime).real # float32

                                                                                                                                                                                                                                  # Match original style constraint:
                                                                                                                                                                                                                                  loss = loss + F.mse_loss(x_prime + (sig * mask_soft).real, y[k])

                                                                                                                                                                                                                      opt.zero_grad(set_to_none=True)
                                                                                                                                                                                                                              loss.backward()
                                                                                                                                                                                                                      opt.step()

                                                                                                                                                                                                                          final_mask = (torch.sigmoid(p) > float(threshold))
                                                                                                                                                                                                                      return final_mask


                                                                                                                                                                                                                      def apply_watermark_fft(
                                                                                                                                                                                                                          last_inverse_latent: torch.Tensor,
                                                                                                                                                                                                                          watermarking_mask: torch.Tensor,
                                                                                                                                                                                                                          signature_fft: torch.Tensor
                                                                                                                                                                                                                      ) -> torch.Tensor:
                                                                                                                                                                                                                      """
                                                                                                                                                                                                                          Replace FFT bins selected by watermarking_mask with signature_fft bins.
                                                                                                                                                                                                                          last_inverse_latent: [B,C,H,W] real
                                                                                                                                                                                                                          watermarking_mask : bool broadcastable to [B,C,H,W]
                                                                                                                                                                                                                          signature_fft : complex broadcastable to [B,C,H,W]
                                                                                                                                                                                                                      """
                                                                                                                                                                                                                      if last_inverse_latent.ndim != 4:
                                                                                                                                                                                                                              raise ValueError("last_inverse_latent must be [B,C,H,W].")
                                                                                                                                                                                                                      if not torch.is_complex(signature_fft):
                                                                                                                                                                                                                              raise TypeError("signature_fft must be complex.")

                                                                                                                                                                                                                          B, C, H, W = last_inverse_latent.shape
                                                                                                                                                                                                                          device = last_inverse_latent.device

                                                                                                                                                                                                                      x = last_inverse_latent.float()
                                                                                                                                                                                                                      X = torch.fft.fft2(x)

                                                                                                                                                                                                                      sig = signature_fft
                                                                                                                                                                                                                      ifsig.ndim == 2:
                                                                                                                                                                                                                      sig = sig[None, None, :, :]
                                                                                                                                                                                                                          elif sig.ndim == 3:
                                                                                                                                                                                                                      sig = sig[None, :, :, :]
                                                                                                                                                                                                                          elif sig.ndim != 4:
                                                                                                                                                                                                                              raise ValueError("signature_fft must have shape [H,W] or [C,H,W] or [B,C,H,W].")

                                                                                                                                                                                                                      sig = sig.to(device=device)
                                                                                                                                                                                                                      ifsig.dtype != torch.complex64:
                                                                                                                                                                                                                      sig = sig.to(torch.complex64)
                                                                                                                                                                                                                      sig = sig.expand(B, C, H, W)

                                                                                                                                                                                                                          mask = watermarking_mask
                                                                                                                                                                                                                      if mask.dtype != torch.bool:
                                                                                                                                                                                                                              mask = mask.bool()
                                                                                                                                                                                                                      if mask.shape != (B, C, H, W):
                                                                                                                                                                                                                              mask = mask.expand(B, C, H, W)

                                                                                                                                                                                                                      X = X.clone()
                                                                                                                                                                                                                      X[mask] = sig[mask].clone()
                                                                                                                                                                                                                      return torch.fft.ifft2(X).real

                                                                                                                                                                                                                      更多分析可见原文

                                                                                                                                                                                                                      最新文章

                                                                                                                                                                                                                      随机文章

                                                                                                                                                                                                                      基本 文件 流程 错误 SQL 调试
                                                                                                                                                                                                                      1. 请求信息 : 2026-02-08 11:04:02 HTTP/2.0 GET : https://f.mffb.com.cn/a/464596.html
                                                                                                                                                                                                                      2. 运行时间 : 0.119447s [ 吞吐率:8.37req/s ] 内存消耗:4,422.73kb 文件加载:140
                                                                                                                                                                                                                      3. 缓存信息 : 0 reads,0 writes
                                                                                                                                                                                                                      4. 会话信息 : SESSION_ID=712ad2a74f0bd792edfc7fbcd8dea229
                                                                                                                                                                                                                      1. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/public/index.php ( 0.79 KB )
                                                                                                                                                                                                                      2. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/autoload.php ( 0.17 KB )
                                                                                                                                                                                                                      3. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/composer/autoload_real.php ( 2.49 KB )
                                                                                                                                                                                                                      4. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/composer/platform_check.php ( 0.90 KB )
                                                                                                                                                                                                                      5. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/composer/ClassLoader.php ( 14.03 KB )
                                                                                                                                                                                                                      6. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/composer/autoload_static.php ( 4.90 KB )
                                                                                                                                                                                                                      7. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-helper/src/helper.php ( 8.34 KB )
                                                                                                                                                                                                                      8. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-validate/src/helper.php ( 2.19 KB )
                                                                                                                                                                                                                      9. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/helper.php ( 1.47 KB )
                                                                                                                                                                                                                      10. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/stubs/load_stubs.php ( 0.16 KB )
                                                                                                                                                                                                                      11. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Exception.php ( 1.69 KB )
                                                                                                                                                                                                                      12. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-container/src/Facade.php ( 2.71 KB )
                                                                                                                                                                                                                      13. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/symfony/deprecation-contracts/function.php ( 0.99 KB )
                                                                                                                                                                                                                      14. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/symfony/polyfill-mbstring/bootstrap.php ( 8.26 KB )
                                                                                                                                                                                                                      15. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/symfony/polyfill-mbstring/bootstrap80.php ( 9.78 KB )
                                                                                                                                                                                                                      16. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/symfony/var-dumper/Resources/functions/dump.php ( 1.49 KB )
                                                                                                                                                                                                                      17. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-dumper/src/helper.php ( 0.18 KB )
                                                                                                                                                                                                                      18. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/symfony/var-dumper/VarDumper.php ( 4.30 KB )
                                                                                                                                                                                                                      19. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/App.php ( 15.30 KB )
                                                                                                                                                                                                                      20. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-container/src/Container.php ( 15.76 KB )
                                                                                                                                                                                                                      21. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/psr/container/src/ContainerInterface.php ( 1.02 KB )
                                                                                                                                                                                                                      22. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/app/provider.php ( 0.19 KB )
                                                                                                                                                                                                                      23. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Http.php ( 6.04 KB )
                                                                                                                                                                                                                      24. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-helper/src/helper/Str.php ( 7.29 KB )
                                                                                                                                                                                                                      25. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Env.php ( 4.68 KB )
                                                                                                                                                                                                                      26. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/app/common.php ( 0.03 KB )
                                                                                                                                                                                                                      27. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/helper.php ( 18.78 KB )
                                                                                                                                                                                                                      28. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Config.php ( 5.54 KB )
                                                                                                                                                                                                                      29. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/app.php ( 0.95 KB )
                                                                                                                                                                                                                      30. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/cache.php ( 0.78 KB )
                                                                                                                                                                                                                      31. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/console.php ( 0.23 KB )
                                                                                                                                                                                                                      32. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/cookie.php ( 0.56 KB )
                                                                                                                                                                                                                      33. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/database.php ( 2.48 KB )
                                                                                                                                                                                                                      34. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/facade/Env.php ( 1.67 KB )
                                                                                                                                                                                                                      35. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/filesystem.php ( 0.61 KB )
                                                                                                                                                                                                                      36. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/lang.php ( 0.91 KB )
                                                                                                                                                                                                                      37. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/log.php ( 1.35 KB )
                                                                                                                                                                                                                      38. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/middleware.php ( 0.19 KB )
                                                                                                                                                                                                                      39. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/route.php ( 1.89 KB )
                                                                                                                                                                                                                      40. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/session.php ( 0.57 KB )
                                                                                                                                                                                                                      41. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/trace.php ( 0.34 KB )
                                                                                                                                                                                                                      42. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/view.php ( 0.82 KB )
                                                                                                                                                                                                                      43. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/app/event.php ( 0.25 KB )
                                                                                                                                                                                                                      44. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Event.php ( 7.67 KB )
                                                                                                                                                                                                                      45. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/app/service.php ( 0.13 KB )
                                                                                                                                                                                                                      46. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/app/AppService.php ( 0.26 KB )
                                                                                                                                                                                                                      47. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Service.php ( 1.64 KB )
                                                                                                                                                                                                                      48. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Lang.php ( 7.35 KB )
                                                                                                                                                                                                                      49. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/lang/zh-cn.php ( 13.70 KB )
                                                                                                                                                                                                                      50. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/initializer/Error.php ( 3.31 KB )
                                                                                                                                                                                                                      51. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/initializer/RegisterService.php ( 1.33 KB )
                                                                                                                                                                                                                      52. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/services.php ( 0.14 KB )
                                                                                                                                                                                                                      53. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/service/PaginatorService.php ( 1.52 KB )
                                                                                                                                                                                                                      54. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/service/ValidateService.php ( 0.99 KB )
                                                                                                                                                                                                                      55. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/service/ModelService.php ( 2.04 KB )
                                                                                                                                                                                                                      56. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-trace/src/Service.php ( 0.77 KB )
                                                                                                                                                                                                                      57. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Middleware.php ( 6.72 KB )
                                                                                                                                                                                                                      58. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/initializer/BootService.php ( 0.77 KB )
                                                                                                                                                                                                                      59. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/Paginator.php ( 11.86 KB )
                                                                                                                                                                                                                      60. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-validate/src/Validate.php ( 63.20 KB )
                                                                                                                                                                                                                      61. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/Model.php ( 23.55 KB )
                                                                                                                                                                                                                      62. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/model/concern/Attribute.php ( 21.05 KB )
                                                                                                                                                                                                                      63. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/model/concern/AutoWriteData.php ( 4.21 KB )
                                                                                                                                                                                                                      64. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/model/concern/Conversion.php ( 6.44 KB )
                                                                                                                                                                                                                      65. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/model/concern/DbConnect.php ( 5.16 KB )
                                                                                                                                                                                                                      66. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/model/concern/ModelEvent.php ( 2.33 KB )
                                                                                                                                                                                                                      67. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/model/concern/RelationShip.php ( 28.29 KB )
                                                                                                                                                                                                                      68. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-helper/src/contract/Arrayable.php ( 0.09 KB )
                                                                                                                                                                                                                      69. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-helper/src/contract/Jsonable.php ( 0.13 KB )
                                                                                                                                                                                                                      70. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/model/contract/Modelable.php ( 0.09 KB )
                                                                                                                                                                                                                      71. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Db.php ( 2.88 KB )
                                                                                                                                                                                                                      72. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/DbManager.php ( 8.52 KB )
                                                                                                                                                                                                                      73. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Log.php ( 6.28 KB )
                                                                                                                                                                                                                      74. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Manager.php ( 3.92 KB )
                                                                                                                                                                                                                      75. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/psr/log/src/LoggerTrait.php ( 2.69 KB )
                                                                                                                                                                                                                      76. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/psr/log/src/LoggerInterface.php ( 2.71 KB )
                                                                                                                                                                                                                      77. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Cache.php ( 4.92 KB )
                                                                                                                                                                                                                      78. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/psr/simple-cache/src/CacheInterface.php ( 4.71 KB )
                                                                                                                                                                                                                      79. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-helper/src/helper/Arr.php ( 16.63 KB )
                                                                                                                                                                                                                      80. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/cache/driver/File.php ( 7.84 KB )
                                                                                                                                                                                                                      81. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/cache/Driver.php ( 9.03 KB )
                                                                                                                                                                                                                      82. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/contract/CacheHandlerInterface.php ( 1.99 KB )
                                                                                                                                                                                                                      83. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/app/Request.php ( 0.09 KB )
                                                                                                                                                                                                                      84. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Request.php ( 55.78 KB )
                                                                                                                                                                                                                      85. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/app/middleware.php ( 0.25 KB )
                                                                                                                                                                                                                      86. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Pipeline.php ( 2.61 KB )
                                                                                                                                                                                                                      87. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-trace/src/TraceDebug.php ( 3.40 KB )
                                                                                                                                                                                                                      88. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/middleware/SessionInit.php ( 1.94 KB )
                                                                                                                                                                                                                      89. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Session.php ( 1.80 KB )
                                                                                                                                                                                                                      90. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/session/driver/File.php ( 6.27 KB )
                                                                                                                                                                                                                      91. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/contract/SessionHandlerInterface.php ( 0.87 KB )
                                                                                                                                                                                                                      92. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/session/Store.php ( 7.12 KB )
                                                                                                                                                                                                                      93. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Route.php ( 23.73 KB )
                                                                                                                                                                                                                      94. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/route/RuleName.php ( 5.75 KB )
                                                                                                                                                                                                                      95. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/route/Domain.php ( 2.53 KB )
                                                                                                                                                                                                                      96. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/route/RuleGroup.php ( 22.43 KB )
                                                                                                                                                                                                                      97. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/route/Rule.php ( 26.95 KB )
                                                                                                                                                                                                                      98. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/route/RuleItem.php ( 9.78 KB )
                                                                                                                                                                                                                      99. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/route/app.php ( 1.72 KB )
                                                                                                                                                                                                                      100. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/facade/Route.php ( 4.70 KB )
                                                                                                                                                                                                                      101. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/route/dispatch/Controller.php ( 4.74 KB )
                                                                                                                                                                                                                      102. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/route/Dispatch.php ( 10.44 KB )
                                                                                                                                                                                                                      103. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/app/controller/Index.php ( 4.81 KB )
                                                                                                                                                                                                                      104. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/app/BaseController.php ( 2.05 KB )
                                                                                                                                                                                                                      105. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/facade/Db.php ( 0.93 KB )
                                                                                                                                                                                                                      106. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/connector/Mysql.php ( 5.44 KB )
                                                                                                                                                                                                                      107. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/PDOConnection.php ( 52.47 KB )
                                                                                                                                                                                                                      108. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/Connection.php ( 8.39 KB )
                                                                                                                                                                                                                      109. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/ConnectionInterface.php ( 4.57 KB )
                                                                                                                                                                                                                      110. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/builder/Mysql.php ( 16.58 KB )
                                                                                                                                                                                                                      111. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/Builder.php ( 24.06 KB )
                                                                                                                                                                                                                      112. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/BaseBuilder.php ( 27.50 KB )
                                                                                                                                                                                                                      113. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/Query.php ( 15.71 KB )
                                                                                                                                                                                                                      114. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/BaseQuery.php ( 45.13 KB )
                                                                                                                                                                                                                      115. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/TimeFieldQuery.php ( 7.43 KB )
                                                                                                                                                                                                                      116. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/AggregateQuery.php ( 3.26 KB )
                                                                                                                                                                                                                      117. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/ModelRelationQuery.php ( 20.07 KB )
                                                                                                                                                                                                                      118. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/ParamsBind.php ( 3.66 KB )
                                                                                                                                                                                                                      119. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/ResultOperation.php ( 7.01 KB )
                                                                                                                                                                                                                      120. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/WhereQuery.php ( 19.37 KB )
                                                                                                                                                                                                                      121. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/JoinAndViewQuery.php ( 7.11 KB )
                                                                                                                                                                                                                      122. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/TableFieldInfo.php ( 2.63 KB )
                                                                                                                                                                                                                      123. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/Transaction.php ( 2.77 KB )
                                                                                                                                                                                                                      124. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/log/driver/File.php ( 5.96 KB )
                                                                                                                                                                                                                      125. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/contract/LogHandlerInterface.php ( 0.86 KB )
                                                                                                                                                                                                                      126. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/log/Channel.php ( 3.89 KB )
                                                                                                                                                                                                                      127. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/event/LogRecord.php ( 1.02 KB )
                                                                                                                                                                                                                      128. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-helper/src/Collection.php ( 16.47 KB )
                                                                                                                                                                                                                      129. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/facade/View.php ( 1.70 KB )
                                                                                                                                                                                                                      130. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/View.php ( 4.39 KB )
                                                                                                                                                                                                                      131. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Response.php ( 8.81 KB )
                                                                                                                                                                                                                      132. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/response/View.php ( 3.29 KB )
                                                                                                                                                                                                                      133. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Cookie.php ( 6.06 KB )
                                                                                                                                                                                                                      134. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-view/src/Think.php ( 8.38 KB )
                                                                                                                                                                                                                      135. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/contract/TemplateHandlerInterface.php ( 1.60 KB )
                                                                                                                                                                                                                      136. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-template/src/Template.php ( 46.61 KB )
                                                                                                                                                                                                                      137. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-template/src/template/driver/File.php ( 2.41 KB )
                                                                                                                                                                                                                      138. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-template/src/template/contract/DriverInterface.php ( 0.86 KB )
                                                                                                                                                                                                                      139. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/runtime/temp/067d451b9a0c665040f3f1bdd3293d68.php ( 11.98 KB )
                                                                                                                                                                                                                      140. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-trace/src/Html.php ( 4.42 KB )
                                                                                                                                                                                                                      1. CONNECT:[ UseTime:0.000706s ] mysql:host=127.0.0.1;port=3306;dbname=f_mffb;charset=utf8mb4
                                                                                                                                                                                                                      2. SHOW FULL COLUMNS FROM `fenlei` [ RunTime:0.000883s ]
                                                                                                                                                                                                                      3. SELECT * FROM `fenlei` WHERE `fid` = 0 [ RunTime:0.000309s ]
                                                                                                                                                                                                                      4. SELECT * FROM `fenlei` WHERE `fid` = 63 [ RunTime:0.000431s ]
                                                                                                                                                                                                                      5. SHOW FULL COLUMNS FROM `set` [ RunTime:0.000649s ]
                                                                                                                                                                                                                      6. SELECT * FROM `set` [ RunTime:0.000254s ]
                                                                                                                                                                                                                      7. SHOW FULL COLUMNS FROM `article` [ RunTime:0.000708s ]
                                                                                                                                                                                                                      8. SELECT * FROM `article` WHERE `id` = 464596 LIMIT 1 [ RunTime:0.002185s ]
                                                                                                                                                                                                                      9. UPDATE `article` SET `lasttime` = 1770519843 WHERE `id` = 464596 [ RunTime:0.002858s ]
                                                                                                                                                                                                                      10. SELECT * FROM `fenlei` WHERE `id` = 65 LIMIT 1 [ RunTime:0.000257s ]
                                                                                                                                                                                                                      11. SELECT * FROM `article` WHERE `id` < 464596 ORDER BY `id` DESC LIMIT 1 [ RunTime:0.000430s ]
                                                                                                                                                                                                                      12. SELECT * FROM `article` WHERE `id` > 464596 ORDER BY `id` ASC LIMIT 1 [ RunTime:0.007126s ]
                                                                                                                                                                                                                      13. SELECT * FROM `article` WHERE `id` < 464596 ORDER BY `id` DESC LIMIT 10 [ RunTime:0.005917s ]
                                                                                                                                                                                                                      14. SELECT * FROM `article` WHERE `id` < 464596 ORDER BY `id` DESC LIMIT 10,10 [ RunTime:0.006081s ]
                                                                                                                                                                                                                      15. SELECT * FROM `article` WHERE `id` < 464596 ORDER BY `id` DESC LIMIT 20,10 [ RunTime:0.003947s ]
                                                                                                                                                                                                                      0.121093s