Cita:
Empezado por JXJ
siguiendo con esto encontre que
Código:
Comprobante Fiscal Digital muestra:
( 903 kB) Formato XML
Expresión Impresa
Ejemplo de Cadena Original:
||2.0|A|1|2009-09-02T16:30:00|1|2009|ingreso|Pago en una sola exhibicion|350.00|406.00|ISP900909Q88|Industrias del Sur Poniente, S.A. de C.V.|Alvaro Obregón|37|3|Col. Roma Norte|México|Cuauhtémoc|
Distrito Federal|México|06700|Pino Suarez|23|Centro|Monterrey|Monterrey|Nuevo Léon|México|95460|CAUR390312S87|Rosa María Calderón Uriegas|Topochico|52|Jardines del Valle|Monterrey|Monterrey|
Nuevo León|México|95465|10|Caja|Vasos decorados|20|200|1|pieza|Charola metálica|150|150|IVA|16.00|56.00|56.00||
Resultado de la digestión MD5 como HEX:
8aa2b617944427353697e694a2e35a07
que es eso de
Resultado de la digestión MD5 como HEX:
8aa2b617944427353697e694a2e35a07
¿como se obtiene.
ya intente pasar el ejemplo de la cadena original a md5?
y me sale
c3e1583ea29b67349fa2eb733279bb98
¿esta cadena md5 como se pasa a Hex?
|
La cadena YA ESTA en hex, Hex significa que se usan solo los numeros 0 al 9 y las letras A a la F.
Si no te sale el mismo digest que el de la muestra seguramente estas cometiendo el error mas comun . LA CADENA ORIGINAL NO DEBE TENER retornos de carros, doble espacios, tabuladores, fin de archivo (EOF) etc etc etc, todos esos son caracteres invisibles que echan a perder la cadena.
Utiliza lo siguiente para tu cadena ANTES de hacer el digest MD5
Código Delphi
[-]
CadenaOriginal := AnsiReplaceStr(CadenaOriginal,#8,'');
CadenaOriginal := AnsiReplaceStr(CadenaOriginal,#10,'');
CadenaOriginal := AnsiReplaceStr(CadenaOriginal,#13,'');
CadenaOriginal := AnsiReplaceStr(CadenaOriginal,' ',' ');
Otra recomendacion, las soluciones que he visto (OpenSSL, Chillkat) pueden hacer en un solo paso la digestion MD5 y el sellado