gpt4 book ai didi

php - 如何在 PHP 中验证 DKIM 签名?

转载 作者:IT王子 更新时间:2023-10-29 00:13:18 27 4
gpt4 key购买 nike

我承认我不太擅长 key 验证。我拥有的是一个从 POP3 服务器下载消息的脚本,我正在尝试用 PHP 验证 DKIM 签名。我已经弄清楚了 body hash (bh) 验证检查,但我无法弄清楚 header 验证。

http://www.dkim.org/specs/rfc4871-dkimbase.html#rfc.section.6.1.3

下面是我的邮件标题的示例。我已经能够使用 Mail::DKIM 包来验证 Perl 中的签名,所以我知道它很好。我似乎无法理解 RFC 中的说明并将它们翻译成 PHP 代码。

 DomainKey-Signature: q=dns; a=rsa-sha1; c=nofws;
s=angrychimp-1.bh; d=angrychimp.net;
h=From:X-Outgoing;
b=RVkenibHQ7GwO5Y3tun2CNn5wSnooBSXPHA1Kmxsw6miJDnVp4XKmA9cUELwftf9
nGiRCd3rLc6eswAcVyNhQ6mRSsF55OkGJgDNHiwte/pP5Z47Lo/fd6m7rfCnYxq3
DKIM-Signature: v=1; a=rsa-sha1; d=angrychimp.net; s=angrychimp-1.bh; c=relaxed/simple;
q=dns/txt; i=@angrychimp.net; t=1268436255;
h=From:Subject:X-Outgoing:Date;
bh=gqhC2GEWbg1t7T3IfGMUKzt1NCc=;
b=ZmeavryIfp5jNDIwbpifsy1UcavMnMwRL6Fy6axocQFDOBd2KjnjXpCkHxs6yBZn
Wu+UCFeAP+1xwN80JW+4yOdAiK5+6IS8fiVa7TxdkFDKa0AhmJ1DTHXIlPjGE4n5;
To: iptest@example.com
Message-ID: <EF.CC.24859.F1DCA9B4>
From: DKIM Tester <noreply@angrychimp.net>
Reply-To: noreply@angrychimp.net
Subject: Automated DKIM Testing (angrychimp.net)
X-Outgoing: dhaka
Date: Fri, 12 Mar 2010 15:24:15 -0800
Content-Type: text/plain; charset=iso-8859-1
Content-Transfer-Encoding: quoted-printable
Content-Disposition: inline
MIME-Version: 1.0
Return-Path: noreply@angrychimp.net
X-OriginalArrivalTime: 12 Mar 2010 23:25:50.0326 (UTC) FILETIME=[5A0ED160:01CAC23B]

我可以很好地从我的 DNS 中提取公钥,而且我相信我正确规范了 header ,但我就是无法验证签名。我不认为我正在准备我的 key 或正确计算签名验证。

这是可能的(我需要 pear 扩展或其他什么吗?)还是在 PHP 中手动验证 DKIM 签名不可行?

最佳答案

Mail::DKIM 对其他库有以下依赖性:

  • 地穴::OpenSSL::RSA
  • 摘要::SHA
  • Mail::Address(MailTools 包的一部分)
  • MIME::Base64
  • 网络::DNS

所有这些也应该在 PHP 中可用。所以在 PHP 中手动检查有效性是可控的。 Mail::DKIM 正在使用这些库“手动”验证签名。也许您对 Mail::DKIM 的源代码有深入了解?

另外“OpenDKIM Library (libopendkim) ”可用。您可以围绕这个库构建一个 PHP 模块,就像其他人将 OpenSSL、cURL 等集成到 PHP 中一样。

也许你可以提供你的verify-function的代码和一些测试数据,让大家看看?

HTH & 最好的问候

迈克尔

关于php - 如何在 PHP 中验证 DKIM 签名?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2510626/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com