You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何仅通过DNS中的DKIM公钥计算密钥长度(比特数)

计算DKIM公钥的密钥长度(无需私钥)

步骤1:获取DKIM公钥的DNS记录

用dig命令查询目标域名的DKIM TXT记录,比如查询example.com的default selector:

dig +short default._domainkey.example.com TXT

输出会是类似v=DKIM1; k=rsa; p=MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQC0cOtPjzA...的字符串,你需要提取p=后面的base64编码内容(记得去掉所有空格和换行)。

步骤2:解析公钥并获取密钥长度

把提取到的base64公钥内容,通过管道传给openssl处理,直接输出密钥长度:

echo "这里替换成你提取的base64公钥" | base64 -d | openssl rsa -inform der -pubin -text -noout | grep "Public-Key"

执行后会得到类似Public-Key: (2048 bit)的结果,括号里的数字就是密钥的比特长度。

一键自动查询脚本(Debian环境用)

如果不想手动提取公钥,可以用这个脚本自动完成,替换SELECTOR和DOMAIN为你的目标值即可:

#!/bin/bash
SELECTOR="default"
DOMAIN="example.com"

# 抓取DKIM记录并提取p字段的公钥
DKIM_PUB=$(dig +short ${SELECTOR}._domainkey.${DOMAIN} TXT | tr -d '"' | awk -F'p=' '{print $2}' | tr -d ' ')

# 解析并输出密钥长度
echo "${DKIM_PUB}" | base64 -d | openssl rsa -inform der -pubin -text -noout | grep "Public-Key"

给脚本加执行权限:chmod +x dkim-key-check.sh,然后运行./dkim-key-check.sh就行。

跨平台适配

  • BSD环境:把命令里的base64 -d换成base64 -D,其余操作和Debian一致。
  • Windows环境:用PowerShell实现,替换$selector和$domain:
    $selector = "default"
    $domain = "example.com"
    $dkimRecord = Resolve-DnsName "${selector}._domainkey.${domain}" -Type TXT | Select-Object -ExpandProperty Strings
    $pubKey = ($dkimRecord -split 'p=')[1] -replace '\s',''
    $bytes = [Convert]::FromBase64String($pubKey)
    $rsa = [System.Security.Cryptography.RSA]::Create()
    $rsa.ImportSubjectPublicKeyInfo($bytes, [ref]$null)
    Write-Host "Public-Key: ($($rsa.KeySize) bit)"
    

内容的提问来源于stack exchange,提问作者Jan

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.19 14:15:02