<?php
$data = 'hello world'; // 待签名的数据
$pemKey = '-----BEGIN RSA PRIVATE KEY-----
MIICXgIBAAKBgQCjn9+t/6NzbRf0d7MUifeyJDNHxnlZT5iGDhpOc+KzvzQ97ldz
3ymWipC9vQOwcL3dFzDZU5yRFHJ69zq3BVm0JCstztIbTW1Wsj7kg5nZQ/aoiiEs
lWPNVQ82sjuPQdShlFoT5kYOy/ii6vdsc+V5vUvMH8BJ29wl+Vc7lQz2JwIDAQAB
AoGBAJIl9JGkdkpT+KZ+Zzp9KxeWjmem9dKv6O6BMVQqRKogQ1KCkCnD6MQX8g4Z
+GXNweqXGzYsI5EJTeKRcnZzaI4ABWvR3PWdzt7QYJboXNZA6yqZ7GZ0NeYqYt57
z8wuGqxx6Zsy/7VkU9qsDEzDpe+n7E4s9B6eQEPLboUF8ZGBAkEAz4IIj3NUCVDp
z77PxJLjK5Z5XoVLYRQw174zp3Tur6zJfUv7S2zKqFdqvNuU46Pklhg+e/05xls5
KQL1z8rfcgJBANj5JfNrNLcl5uGCEJsoWSWvOpR86KwwlP9KH+SzWVlqkFyBDsT7
JVs1KtuHeBLJA4Z7Kz0XWUMMFuXcDJNXJj8CQB7EInUPxw0JZzRgyHYW/B3VX3HP
pwweX0+QDkCNO/fU7/BlWWhVrbRH+93exNUFkKo+g1rc/B97VxXMOU31QlMCQBXh
4SAyPiNfSxkn+yyTeJdQpdbkaOt2pb4g2cojHsT3H4kLFKvDG6BgZainp/N9w6B2
5Y06h1/j87An+1G6YekCQQCF/pQ1WTxA6d/R6PejyFgZlSN2Kq866h3azpoSJB5
WTaVxX+F2JTfpTi+08/TUGiazZx8rBmy6wsIg9GOJvMC
-----END RSA PRIVATE KEY-----'; // RSA 私钥
$privateKey = openssl_pkey_get_private($pemKey);
openssl_sign($data, $signature, $privateKey, OPENSSL_ALGO_SHA1);
echo base64_encode($signature); // 输出签名值
openssl_free_key($privateKey);
?>
需要注意的是,需要有 OpenSSL 扩展才能使用 openssl_pkey_get_private()
和 openssl_sign()
函数。同时,要确保私钥已正确生成,格式为 PEM 格式。