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 }