示例:DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=example.com; s=s2026; t=1792483200; x=1793088000; h=from:to:subject:date:message-id; bh=…; b=…。bh 即正文哈希,是规范化后正文的 SHA-256 哈希的 base64 编码;采用 relaxed 正文规范化时,空正文的哈希为 47DEQpj8HBSa+/TImW+5JCeuQeRkm5NMpJWZG3hSuFU=。签名按顺序覆盖所列的头部,最后覆盖 b= 置空后的 DKIM-Signature 头部本身。
值得检查的标签:h= 必须包含 From(RFC 6376 的要求);把某个头部列出的次数多于它在邮件中实际出现的次数(超额签名),可以防止攻击者再添加一份副本;l= 限制签名覆盖的正文长度,这会让任何人都能在末尾追加内容,因此不应使用;t= 和 x= 给出签名时间和过期时间;i= 是 d= 域名下的代理或用户标识符。
位于 s._domainkey.d 的密钥记录为 v=DKIM1; k=rsa; p=…(公钥的 base64 编码:RSA 实际使用 SubjectPublicKeyInfo,k=ed25519 则是 32 字节的原始密钥);p= 为空表示吊销该密钥。2048 位 RSA 密钥的 base64 编码有 392 个字符,超过单个 TXT 字符串 255 字节的上限,因此必须在同一条记录中拆分为多个字符串。