准备工作
php的openssl扩展里已经封装好了验签的方法openssl_verify。
如果在Windows下的php.ini需要开启Openssl模块: extension=php_openssl.dll
私钥:
即RSA私钥,按照手册,按以下方式生成:
openssl genrsa -out rsa_private_key.pem 1024
公钥:
即RSA私钥,按照手册,按以下方式生成:
openssl rsa -in rsa_private_key.pem -pubout -out rsa_public_key.pem
签名函数123456789101112131415/** * 签名字符串 * @param $prestr 需要签名的字符串 * return 签名结果 */function rsaSign($prestr) { $public_key= file_get_contents('rsa_private_key.pem'); $pkeyid = openssl_get_privatekey($public_key); openssl_sign($prestr, $sign, $pkeyid); openssl_free_key($pkeyid); $sign = base64_encode($sign); return $sign;}