PHP   发布时间:2022-04-04  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了无法使用PHP openssl_sign进行任何签名?大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

我正在尝试使用PHP-DKIM发送DKIM签名的电子邮件.它有点旧,所以我不得不更改一些东西,但是这让我感到困惑:

Warning: openssl_sign() [function.openssl-sign]: supplied key param cAnnot be coerced into a private key in /.../pages/user/dkim.PHP on line 66
CAnnot sign

代码的相关部分(请注意,我已经添加了$pkeyid,最初私钥只是直接传递给了open_ssl函数,该函数也不起作用)

$pkeyid = openssl_get_privatekey($open_SSL_priv);
if (openssl_sign($s, $signature, $pkeyid))
    return base64_encode($signaturE) ;
else
    die("CAnnot sign") ;

因此,很显然这里确实发生了一些糟糕的事情.但是我知道我的私钥和公钥是有效的.我什至尝试了comments for openssl_sign中提供的示例键,但该键无效

$open_SSL_pub=<<<EOD
-----BEGIN PUBLIC KEY-----
MFwwDQYJKoZIhvcNAQEBBQADSwAwSAJBANDiE2+Xi/WnO+s120NiiJhNyIButVu6
zxqlVzz0wy2j4kQVUC4ZRZD80IY+4wIiX2YxKBZKGnd2TtPkcJ/ljkUCAwEAAQ==
-----END PUBLIC KEY-----
EOD;

$open_SSL_priv=<<<EOD
-----BEGIN RSA PRIVATE KEY-----
MIIBOgIBAAJBANDiE2+Xi/WnO+s120NiiJhNyIButVu6zxqlVzz0wy2j4kQVUC4Z
RZD80IY+4wIiX2YxKBZKGnd2TtPkcJ/ljkUCAwEAAQJAL151ZeMKHEU2c1qdRKS9
sTxCcc2pVwoAGVzRccNX16tfmCf8FjxuM3WmLdsPxYoHrwb1LFNxiNk1MXrxjH3R
6QIhAPB7edmcjH4bhMaJBztcbNE1VRCEi/bisAwiPPMq9/2nAiEA3lyc5+f6DEIJ
h1y6BWkdVULDSM+jpi1XiV/DevxuijMCIQCAEPGqHsF+4v7Jj+3HAgh9PU6otj2n
Y79nJtCymvhoHwIgNDePaS4inApN7omP7WdXyhPZhBmulnGDYvEoGJN66d0CIHra
I2SvDkQ5CmrzkW5qPaE2oO7BSqAhRZxiYpZFb5CI
-----END RSA PRIVATE KEY-----
EOD;

我不知所措. OpenSSL“ 0.9.8e-fips-rHel5 2008年7月1日”已安装并在PHP中处于活动状态.我生成的密钥和该密钥都可以正常工作.那么,为什么openssl_sign继续失败?

解决方法:

使用PHP-DKIM时发生相同的错误

如果没有看到其余的代码,很难确定是否是出于相同的原因.

但是,我的问题是我将PHP-DKIM脚本包含在一个函数中.

function sendEmail(){
require 'dkim.PHP';
//DO stuFF HERE
}

包括函数外的文件停止了错误.

require 'dkim.PHP';
function sendEmail(){
//DO stuFF HERE
}

我希望这有帮助.

大佬总结

以上是大佬教程为你收集整理的无法使用PHP openssl_sign进行任何签名?全部内容,希望文章能够帮你解决无法使用PHP openssl_sign进行任何签名?所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。
标签: