如何使用已经给定的私钥作为 PHP 中的私钥资源?

火箭飞船

我正在整合 Walmart API。他们需要对每个 API 调用进行数字签名。在我必须处理私钥之前,我的代码似乎正在运行。这是我生成数字签名的函数:

//Most of this code is from a Walmart API sample
function _GetWalmartAuthSignature($URL, $RequestMethod, $TimeStamp, $ConsumerId) {
    $WalmartPrivateKey = {given PEM formatted string};
    //Construct the authentication data we need to sign
    $AuthData = $ConsumerId."\n";
    $AuthData .= $URL."\n";
    $AuthData .= $RequestMethod."\n";
    $AuthData .= $TimeStamp."\n";

//THIS METHOD IS RETURNING FALSE!!!!
$PrivateKey = openssl_pkey_get_private($WalmartPrivateKey);

//Sign the data using sha256 hash
defined("OPENSSL_ALGO_SHA256") ? $Hash = OPENSSL_ALGO_SHA256 : $Hash = "sha256";
if (!openssl_sign($AuthData, $Signature, $privKey, $Hash)) {
    return null;
}

//Encode the signature and return
return base64_encode($Signature);

}

openssl_pkey_get_private() 函数不断返回 false。那么我的 openssl_sign() func 给了我错误:openssl_sign(): 提供的密钥参数不能被强制转换为私钥

我首先尝试创建一个新的关键资源,使用

$res = openssl_pkey_new(); 
openssl_pkey_export($res, $privKey);

然后将我的 $WalmartPrivateKey 保存到 $privKey,但我遇到了同样的错误。我尝试使用 openssl_get_private_key(),但同样 - 没有任何效果。

我只知道公钥/私钥加密的基础知识,这是我第一次使用这些功能。

谁能帮我吗?

梅格

我有一个类似的问题,这是因为 PEM 格式错误。确保您有正确的开始和结束标记:“-----BEGIN PRIVATE KEY-----”、“-----END PRIVATE KEY-----”。两个标记必须在单词前后正好有 5 个破折号,并且单词必须全部大写。祝你好运!

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

在PHP中获取私钥.pfx

来自分类Dev

在PHP中获取私钥.pfx

来自分类Dev

无效的私钥在PHP中解密数据

来自分类Dev

如何在 php gnupg 中处理/查看私钥?

来自分类Dev

PHP:从单行私钥获取私钥

来自分类Dev

如何在PHP中使用PKCS8编码的私钥

来自分类Dev

如何在数据库或服务器(php)中存储私钥

来自分类Dev

如何使用python中的RSA私钥加密数据?

来自分类Dev

使用后如何从内存中清除私钥数据?

来自分类Dev

如何在Java 1.6中使用ECC私钥?

来自分类Dev

如何在Java 1.6中使用ECC私钥?

来自分类Dev

如何在Java中解密私钥(不使用BC openssl)

来自分类Dev

如何使用python中的RSA私钥加密数据?

来自分类Dev

php openssl:如何将私钥与证书匹配

来自分类Dev

ssl:将私钥与证书匹配| 使用php和phpseclib

来自分类Dev

“无法设置私钥文件”尝试使用php发送推送

来自分类Dev

SSL:使用 PHP 将私钥与证书匹配(没有 phpseclib)

来自分类Dev

如何在Go中存储ECDSA私钥

来自分类Dev

如何从SSH私钥中检索公钥?

来自分类Dev

如何从SSH私钥中检索公钥?

来自分类Dev

如何使用私钥加密文件

来自分类Dev

如何使用私钥进行rsync?

来自分类Dev

使用文件中的私钥进行RSA签名

来自分类Dev

Xcode-如果使用“撤消”按钮创建了私钥,则如何将私钥添加到“开发证书”中

来自分类Dev

从保存的私钥PHP生成公钥

来自分类Dev

如何从天蓝色的密钥库中获取作为受密码保护的pfx的Byte []的私钥

来自分类Dev

从 PFX 文件中读取私钥,使用该私钥解密密文

来自分类Dev

给定私钥和消息,不确定如何生成ECDSA签名

来自分类Dev

如何在网页中的mandrillapp中隐藏我的私钥

Related 相关文章

热门标签

归档