php – 使用PGP / MIME签署多部分邮件
发布时间:2020-12-13 16:22:22 所属栏目:PHP教程 来源:网络整理
导读:我正在尝试使用 PHP中的PGP签名邮件.我可以使边界和标题正常工作,但邮件签名无效(如Thunderbirds Enigmail所述). 我在这里的问题是签署什么部分以及在做什么时要注意什么. 目前,生成的邮件的来源如下所示(文本和签名由占位符替换,以便于阅读): Content-Type
我正在尝试使用
PHP中的PGP签名邮件.我可以使边界和标题正常工作,但邮件签名无效(如Thunderbirds Enigmail所述).
我在这里的问题是签署什么部分以及在做什么时要注意什么. 目前,生成的邮件的来源如下所示(文本和签名由占位符替换,以便于阅读): Content-Type: multipart/signed; micalg=pgp-sha1; protocol="application/pgp-signature"; boundary="=_1b5364229a82b654fad7cf2aa969f02e" MIME-Version: 1.0 This is a message in Mime Format. If you see this,your mail reader does not support this format. --=_1b5364229a82b654fad7cf2aa969f02e Content-Type: multipart/alternative; boundary="=_53ba9ef8c471e6c8d72f215feaad8033" Content-Transfer-Encoding: 7bit --=_53ba9ef8c471e6c8d72f215feaad8033 &Content-Type: text/plain; charset=UTF-8 &Content-Transfer-Encoding: quoted-printable & &PLAIN TEXT CONTENT ENCODED IN QUOTED PRINTABLE & &--=_53ba9ef8c471e6c8d72f215feaad8033 &Content-Type: text/html; charset=UTF-8 &Content-Transfer-Encoding: quoted-printable & &HTML CONTENT ENCODED IN QUOTED PRINTABLE --=_53ba9ef8c471e6c8d72f215feaad8033-- --=_1b5364229a82b654fad7cf2aa969f02e Content-Type: application/pgp-signature; name="signature.asc" Content-Disposition: attachment; filename="signature.asc" Content-Description: OpenPGP digital signature -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.11 (GNU/Linux) PGP SIGNATURE HERE -----END PGP SIGNATURE----- --=_1b5364229a82b654fad7cf2aa969f02e-- 目前以&用于生成签名.换行符只是新行(PHP_EOL). 我试过遵循RFC2015,但这似乎不适用于multipart / alternative conent. 请帮帮我,这样我就可以完成了. 解决方法
我发现自己……
首先,我需要将所有换行符转换为CRLF,就像RFC状态一样.然后我需要考虑整个multipart / alternative包含其标题作为要签名的消息.所以应该是: Content-Type: multipart/signed; micalg=pgp-sha1; protocol="application/pgp-signature"; boundary="=_1b5364229a82b654fad7cf2aa969f02e" MIME-Version: 1.0 This is a message in Mime Format. If you see this,your mail reader does not support this format. --=_1b5364229a82b654fad7cf2aa969f02e &Content-Type: multipart/alternative; & boundary="=_53ba9ef8c471e6c8d72f215feaad8033" &Content-Transfer-Encoding: 7bit & & &--=_53ba9ef8c471e6c8d72f215feaad8033 &Content-Type: text/plain; charset=UTF-8 &Content-Transfer-Encoding: quoted-printable & &PLAIN TEXT CONTENT ENCODED IN QUOTED PRINTABLE & &--=_53ba9ef8c471e6c8d72f215feaad8033 &Content-Type: text/html; charset=UTF-8 &Content-Transfer-Encoding: quoted-printable & &HTML CONTENT ENCODED IN QUOTED PRINTABLE & &--=_53ba9ef8c471e6c8d72f215feaad8033-- --=_1b5364229a82b654fad7cf2aa969f02e Content-Type: application/pgp-signature; name="signature.asc" Content-Disposition: attachment; filename="signature.asc" Content-Description: OpenPGP digital signature -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.11 (GNU/Linux) PGP SIGNATURE HERE -----END PGP SIGNATURE----- --=_1b5364229a82b654fad7cf2aa969f02e-- 以&开头的行是要签名的人. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |