PHP实践:用openssl打造安全可靠的API签名验证系统
<?php
// 使用openssl生成公钥和私钥对
$config = array('digest_alg' => 'sha256', 'private_key_bits' => 2048, 'private_key_type' => OPENSSL_KEYTYPE_RSA);
$res = openssl_pkey_new($config);
// 提取私钥
openssl_pkey_export($res, $privKey);
// 提取公钥
$pubKey = openssl_pkey_get_details($res);
$pubKey = $pubKey['key'];
// 示例API数据
$apiData = array('userId' => 123, 'action' => 'download');
// 生成签名
$signature = openssl_sign(json_encode($apiData), $signature, $privKey, $config['digest_alg']);
// 验证签名
if (openssl_verify(json_encode($apiData), $signature, $pubKey, $config['digest_alg']) == 1) {
echo "签名验证通过";
} else {
echo "签名验证失败";
}
?>
这段代码展示了如何生成一对公钥和私钥,并使用私钥对API数据进行签名,然后使用公钥验证签名的合法性。这是一个API安全验证的实践例子,对开发需要提供安全保障的API服务有很好的教育意义。
评论已关闭