Re: Generacion de Sello Digital paso a paso
Publicado: Mar May 17, 2011 12:47 pm
En el paso 6 es donde aplica el algoritmo RSApohvak escribió:Disculpa, la encriptacion RSA en que paso la realizas???
FACTURA ELECTRONICA EN MEXICO
https://www.validacfd.com/phpbb3/
En el paso 6 es donde aplica el algoritmo RSApohvak escribió:Disculpa, la encriptacion RSA en que paso la realizas???
Código: Seleccionar todo
<?
//Genera el PEM del archivo key
exec('openssl pkcs8 -inform DER -in aaa010101aaa_CSD_01.key -passin pass:a0123456789 -out pruebaFactura/aaa010101aaa_CSD_01.key.pem');
//pasamos el archivo PEM
$key='pruebaFactura/aaa010101aaa_csd_01.key.pem';
$cadenaOriginal='||2.0|ABC|1234|2010-01-01T12:12:12|12345|2010|ingreso|Pago en una sola exhibicion|68.50|79.46|UCP090807ABC|UAMERO & Compañia SA de CV|Cuba|456|Col. Latinoamerica|Oaxaca|Oaxaca|Oaxaca|México|93736|MMC090909QWE|Mi Mejor Cliente SA de CV|Calle 5 de Mayo|345|Col. Bondojito|Guadalajara|Guadalajara|Guadalajara|México|48473|1|Pieza|Lapiz Berol del No. 2|2.50|2.50|12|Pieza|Borrador Saga|5.00|60.00|3|Pieza|Pluma Bic Negra|2.00|6.00|IVA|16.00|10.96|10.96||';
$cadena=utf8_encode($cadenaOriginal);
echo '<h5>UTF8</h5>'.$cadena;
$cadena=sha1($cadenaOriginal);
echo '<h5>SHA1</h5>'.$cadena;
$fp=fopen('sha1.txt','w+');
fwrite($fp,$cadena);
fclose($fp);
exec("openssl dgst -sha1 -sign LLAVEPRIVADA.pem.txt -out selloBin.txt sha1.txt");
exec("openssl enc -base64 -in selloBin.txt -out sello.txt");
echo "<h5>Seal</h5>";
readfile("sello.txt");
?>
Código: Seleccionar todo
Resultados
SHA1
ae8ccf6ae672b81c9a1f33557f87a6d2ddec02d4
Sello
ZlyWMKBnOveEZKCLxZQAHmzaO/eShsQ2U5UUiEx8F23VqXBnmENpepPkE4f9TOLC b+oX/Y1vMt/Y72kJJxYgoCs6rQlGEbASm6m5I8US1/rpNXiaxXypM6u0rtqcSGlI 1fU+2eJPredt7eyQppIryYMH5wYUEy2rZF09L2FdvTM=
Estas aplicando dos veces el SHA1.chmbrs escribió:Hola que tal, yo estoy teniendo problemas debido a que no me estan dando los resultados esperados hasta donde se codifica en SHA1 todo perfecto, la cadena me sale bien pero cuando firmo la cadena ya los resultados son diferentes y no logro explicarme por queles anexo mi codigo y resultados obtenidos, espero y puedan ayudarme
Código: Seleccionar todo
$cadena=sha1($cadenaOriginal); <<<elimina esta linea
Código: Seleccionar todo
dk4lchDiNo5NZnN7Ld31w0jLdSFV08aUFSTY+9PhnLi2jFQnOkJdpO9JobIFGIUS S+wJUO/oEVNQh2VYD2kbP/B3P0CYpkY/hNAlBZH68dxuNMpqfRiDLjVzIcvMR9WY 4RXEkW/EEJkQMHDbjjft5Prq2RMIyTz8NrdmzuYeeQs=
Código: Seleccionar todo
SKlUSsicX1SOEd4KBGrEtVKg1dr4AsdWLVqrySfCTxx5c6D0CInShWXSsyUpaoj6
gZGpRuc9d9Cg0pQfJPKamSdOyljhNJIzo6VZqC/zg28QCG+6bY2sEmalS1MTP73R
gTIOXOUpio1GPQVO8l6RU+QVgY0TYSfp71JGFbDnWrM=
Código: Seleccionar todo
//Genera el PEM del archivo key
exec('openssl pkcs8 -inform DER -in aaa010101aaa_CSD_01.key -passin pass:a0123456789 -out pruebaFactura/aaa010101aaa_CSD_01.key.pem');
//pasamos el archivo PEM
$key='pruebaFactura/aaa010101aaa_csd_01.key.pem';
$cadenaOriginal='||2.0|ABC|1234|2010-01-01T12:12:12|12345|2010|ingreso|Pago en una sola exhibicion|68.50|79.46|UCP090807ABC|UAMERO & Compañia SA de CV|Cuba|456|Col. Latinoamerica|Oaxaca|Oaxaca|Oaxaca|México|93736|MMC090909QWE|Mi Mejor Cliente SA de CV|Calle 5 de Mayo|345|Col. Bondojito|Guadalajara|Guadalajara|Guadalajara|México|48473|1|Pieza|Lapiz Berol del No. 2|2.50|2.50|12|Pieza|Borrador Saga|5.00|60.00|3|Pieza|Pluma Bic Negra|2.00|6.00|IVA|16.00|10.96|10.96||';
$cadena=utf8_encode($cadenaOriginal);
echo '<h5>UTF8</h5>'.$cadena;
//$cadena=sha1($cadenaOriginal);
//echo '<h5>SHA1</h5>'.$cadena;
$fp=fopen('cadena.txt','w+');
fwrite($fp,$cadenaOriginal);
fclose($fp);
exec("openssl dgst -sha1 -sign LLAVEPRIVADA.pem.txt -out selloBin.txt cadena.txt");
exec("openssl enc -base64 -in selloBin.txt -out sello.txt");
echo "<h5>Seal</h5>";
readfile("sello.txt");