public function isValid($data = '', $signature = '', $publicKey = '')
{
if (empty($data) || empty($signature)) {
return false;
}
$public_content = wordwrap($publicKey, 64, "\n", true);
$public_key = "-----BEGIN PUBLIC KEY-----\r\n" . $public_content . "\r\n-----END PUBLIC KEY-----";
if (empty($public_key)) {
echo "Public Key error!";
return false;
}
$pkeyid = openssl_get_publickey($public_key);
if (empty($pkeyid)) {
echo "public key resource identifier False!";
return false;
}
$ret = openssl_verify($data, base64_decode($signature), $pkeyid, OPENSSL_ALGO_MD5);
if ($ret === 1) {
echo "success";
return true;
} else {
echo "fail";
return false;
}
}
public function sign($data = '', $private_key)
{
$private_content = wordwrap($private_key, 64, "\n", true);
$key = "-----BEGIN RSA PRIVATE KEY-----\r\n" . $private_content . "\r\n-----END RSA PRIVATE KEY-----";
$private_key = openssl_get_privatekey($key);
openssl_sign($data, $sign, $private_key, OPENSSL_ALGO_MD5);
openssl_free_key($private_key);
return base64_encode($sign); // 加密后数据转换为base64
}