This is a function wrapping through the Openssl to sign and validate the data, which ensures the integrity and security of the original data.
Use Composer to install the library.
$ composer require yakeing/php_jwsign
$jwsign = new jwsign();
$jwsign->SetPrivate($accesskey); $Pubkey = $jwsign->GetPubkey();
var_dump($Pubkey);
array(3) {
["pub"]=>string(451) "-----BEGIN PUBLIC KEY-----\nMIIBIjA....NjQIDAQA\n-----END PUBLIC KEY----"
["bits"]=>int(2048)
["kid"]=>string(43) "cjbdM-CeRfP...5BNYQuksIIgmk"
} $Message = base64_encode('
{
"method":"pay",
"charset":"utf-8",
"version":"1.0",
"token":"NAM...YgV"
}
');
$JsonStr = $jwsign->SignMessage($Message);
var_dump($JsonStr);
string(557) "{
"message":"eyJtZXRiO...Z1YifQ==",
"nonce":"MmlhaDE1MD...MTgwLjEwNDc1OTAw",
"kid":"cjOdM-CORfPGa...j-0I5BNYQuksIIgmk",
"sign":"hXvBULK2wSroVFZ...-HYHG7l8Epixikg"
}" $value = '{
"message":"eyJtZXRiO...Z1YifQ==",
"nonce":"MmlhaDE1MD...MTgwLjEwNDc1OTAw",
"kid":"cjOdM-CORfPGa...j-0I5BNYQuksIIgmk"
}';
$sign = 'hXvBULK2wvSroVFZ...-HKbHGDYHG7l8Epixikg';
$pub = '-----BEGIN PUBLIC KEY-----\nMIIBIjA....NjQIDAQA\n-----END PUBLIC KEY----';
$Str = $jwsign->PubkeyVerify($value, $sign, $pub);
var_dump($Str);
bool(true) $value = '{
"message":"eyJtZXRiO...Z1YifQ==",
"nonce":"MmlhaDE1MD...MTgwLjEwNDc1OTAw",
"kid":"cjOdM-CORfPGa...j-0I5BNYQuksIIgmk"
}';
$Str = json_decode($value, true);
var_dump(base64_decode($Str['message']));
string(100) "{
"method":"pay",
"charset":"utf-8",
"version":"1.0",
"token":"NAM...YgV"
}"Your donation makes CODE better.
1FYbZECgs3V3zRx6P7yAu2nCDXP2DHpwt8
Alipay
weibo: yakeing
twitter: yakeing