DNS TXT记录拆分工具
把过长的TXT值切成DNS要求的255字节字符串,直接可以贴进区域文件。
DNS TXT记录拆分工具完全在浏览器中运行,密钥和验证令牌只在你的设备上切分,不会上传。
生成DKIM记录
关于 DNS TXT记录拆分
TXT记录并不是一条长字符串。RFC 1035把它存成一串字符字符串,每条最多255字节,解析器会在中间不加任何东西地把它们拼回去。这正是2048位DKIM密钥必须以多个带引号的片段写进区域文件的原因,也是为什么切错位置——或者用空格把片段连起来——会以很难排查的方式破坏邮件签名。这个工具按字节边界切分,绝不会切在字符中间,并可输出为BIND单行、括号形式或JSON数组。
功能特性
- 按255字节边界切分,计算的是字节而不是字符
- 绝不切断多字节字符或代理对
- 支持BIND单行、括号形式、仅带引号字符串或JSON数组
- 逐片显示字节数,可以看出哪些字符串已经装满
- 对多余空白、已有引号以及超过512字节的记录给出提示
- 把区域文件或dig输出中的字符串重新拼回
- 内置2048位DKIM、长SPF和验证令牌示例
如何使用 DNS TXT记录拆分
- 粘贴完整的TXT值——引号会自动添加
- 需要完整区域行时填写记录名和TTL
- 选择DNS服务商需要的输出格式
- 复制记录,或用拼接标签页还原已拆分的值
示例
输入
v=DKIM1; k=rsa; p=MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8A… (392 bytes)
输出
default._domainkey 3600 IN TXT "v=DKIM1; k=rsa; p=MIIBIja…" "…QIDAQAB"
两条带引号的字符串,解析器会在中间不加任何东西地把它们连起来。
常见错误与故障排除
- DNS服务商以太长为由拒绝该记录。 — 它把255字节限制套在了单条字符串上。请粘贴拆分后的版本,每一片单独加引号。
- 拆分之后DKIM校验失败。 — 几乎总是片段之间多了空格。解析器拼接时不加任何字符,多出来的空格会成为密钥的一部分。
- 记录值本身已经带了引号。 — 请粘贴原始值。引号是在格式化时添加的,已带引号的值会被重复包裹。
- 片段不足255个字符。 — 限制是255字节而不是字符。任何非ASCII字符要占两到四个字节,所以字符更少也可能已经装满。
常见问题
- TXT记录为什么被限制在255个字符?
- 记录中每条字符串前面都有一个长度字节,因此单条被限制在255字节。整条记录可以包含很多条,所以真正的上限是DNS消息大小。
- 解析器怎样把拆开的TXT字符串拼回去?
- 按顺序拼接,中间不加任何分隔符。DKIM、SPF和验证令牌都依赖这一行为,所以在哪里切分并不重要。
- DKIM密钥应该在哪里切?
- 任何位置都行,只要每一片不超过255字节。对校验方来说,拼接之后密钥就是一整条Base64字符串。
- 整条TXT记录能有多大?
- 实际中可以到几千字节,但超过约512字节的应答需要EDNS或改用TCP重试,部分解析器处理得并不好。
- SPF记录也要这样拆分吗?
- 只有当单条字符串超过255字节时才需要,include较多时会出现。另外SPF还有十次DNS查询的独立限制,拆分帮不上忙。
相关工具
全部 ArrayKit 工具