PHP openssl_sign OpenSSL 函数
-
定义和用法
openssl_sign - 生成签名 -
版本支持
PHP4 PHP5 PHP7 支持 支持 支持 -
语法
openssl_sign( string $data , string &$signature , mixed $priv_key_id [, mixed $signature_alg = OPENSSL_ALGO_SHA1 ] )
openssl_sign() 通过使用与priv_key_id关联的私钥生成加密数字签名,为指定的数据输入签名。 请注意,数据本身未加密。 -
参数
参数 必需的 描述 data 是 您希望签名的数据字符串 signature 是 如果调用成功,则以签名形式返回签名。 priv_key_id 是 资源 - 一个由openssl_get_privatekey()返回的密钥。 或者 字符串 - PEM格式的密钥 signature_alg 否 int- 这些签名算法之一。 string - 由 openssl_get_md_methods() 示例返回的有效字符串 “ sha256WithRSAEncryption”或“ sha384”。 -
返回值
成功时返回 TRUE, 或者在失败时返回 FALSE。 -
示例
//data you want to sign $data = 'my data'; //create new private and public key $new_key_pair = openssl_pkey_new(array( "private_key_bits" => 2048, "private_key_type" => OPENSSL_KEYTYPE_RSA, )); openssl_pkey_export($new_key_pair, $private_key_pem); $details = openssl_pkey_get_details($new_key_pair); $public_key_pem = $details['key']; //create signature openssl_sign($data, $signature, $private_key_pem, OPENSSL_ALGO_SHA256); //save for later file_put_contents('private_key.pem', $private_key_pem); file_put_contents('public_key.pem', $public_key_pem); file_put_contents('signature.dat', $signature); //verify signature $r = openssl_verify($data, $signature, $public_key_pem, "sha256WithRSAEncryption"); var_dump($r);
-
相关页面
openssl_verify() - 验证签名