Instance
| The code is as follows |
|
<?php
/**
* Generate signature content based on original text
*
* @param string $data original content
*
* @return String
*/
function sign ($strData)
{
$filePath = ' test.pfx ';
if (!file_exists ($filePath)) {
return false;
}
$PKCS = file_get_contents ($filePath);
if (Openssl_pkcs12_read ($PKCS, $certs, ')) {
$privateKey = $certs [' Pkey '];
$publicKey = $certs [' cert '];
$SIGNEDMSG = "";
if (openssl_sign ($strData, $SIGNEDMSG, $privateKey)) {
$signedMsg =bin2hex ($SIGNEDMSG);
return $SIGNEDMSG;
} else {
return ";
}
} else {
return ' 0 ';
}
}
/*
Openssl_pkcs12_read can read the private key in the PFX format without needing to convert to a file in PEM format
*/
?> |
Openssl_sign default Signature_alg parameter is OPENSSL_ALGO_SHA1
If you use DSA encryption you need to use the OPENSSL_ALGO_DSS1 parameter
Signature_alg Other parameters
Openssl_algo_dss1 (integer)
OPENSSL_ALGO_SHA1 (integer)
openssl_algo_sha224 (integer)
openssl_algo_sha256 (integer)
openssl_algo_sha384 (integer)
openssl_algo_sha512 (integer)
openssl_algo_rmd160 (integer)
OPENSSL_ALGO_MD5 (integer)
OPENSSL_ALGO_MD4 (integer)
OPENSSL_ALGO_MD2 (integer)