我想用PHP使用OpenSSL对XML文件进行数字签名,到目前为止,我可以生成一个包含我需要的所有信息的XML,并且我有一个签名和验证签名的工作演示(声明私有和公钥作为字符串)。我有一个.cer文件和一个.key文件,这些文件是我想用来签署XML文件的文件。我怎样才能做到这一点? 目标是最终用户只需上传这些证书并下载已签名的XML。(约今一些具体的文档不胜感激)PHP数字签名
编辑:好吧,我现在熟悉了OpenSSL和它的功能,但我仍然需要知道如何做包括这在PHP中:
openssl pkcs8 -inform DER -in c:/route/myfile.key -passin pass:contraseña -out c:/route/myfile.pem
要这样:
$data = "||2.0|ABCD|2|03-05-2010T14:11:36|49|2008|INGRESO|UNA SOLA EXHIBICIÓN|2000.00|00.00|2320.00|PAMC660606ER9|CONTRIBUYENTE PRUEBASEIS PATERNOSEIS MATERNOSEIS|PRUEBA SEIS|6|6|PUEBLA CENTRO|PUEBLA|PUEBLA|PUEBLA||MÉXICO|72000|CAUR390312S87|ROSA MARÍA CÁLDERON URIEGAS|TOPOCHICO|52|JARDINES DEL VALLE|NUEVO LEÓN|MEXICO|95465|1.00|SERVICIO|01|ASESORIA FISCAL Y ADMINISTRATIVA|2000.00|IVA|16.00|320.00|| ";
$priv_key_id=openssl_get_privatekey("file://C:\files\Clavepr.key.pem");
$public_key_id=openssl_get_publickey("file://C:\files\cert.cer.pem");
$o=openssl_sign($data,$cadenafirmada, $priv_key_id,OPENSSL_ALGO_SHA1);
$sello=base64_encode($cadenafirmada);
var_dump($sello);
向我们展示您的代码... – jcaron
@jcaron更新了我的文章 – Carlos