Cálculo del HASH para el segmento <DatosControl>
Cita:
Empezado por nuevo1234
SHA-256 es un hash de 64 dígitos hexadecimales (un resumen, por ejemplo bd4526534df7b33772c2f1ee26d97c39ff11379c8848e4e19d74ad849ef66423) casi único de un tamaño fijo de 256 bits (32 bytes). Un hash solo se calcula en una dirección y no se puede decodificar de vuelta.
Por tanto la definición del SHA-256 ya indican que son 64 digitos en hexadecimal. Entiendo que no hay duda
|
Hola, buenas tardes ...
Aunque no desarrollo en Delphi, estuve por estos lares en su día para el tema del SII, y para actualizar mis ERP's con la nueva normativa para Veri*Factu os estoy siguiendo.
He visto el ejemplo, y para probar el hash, he copiado y pegado el Segmento <RegistroFacturacion>/</RegistroFacturacion>:
<RegistroFacturacion>
<PeriodoLiquidacion>
<Ejercicio>2022</Ejercicio>
<Periodo>3T</Periodo>
</PeriodoLiquidacion>
<IdFactura>
<IdEmisorFactura>
<NIF>00000006Y</NIF>
</IdEmisorFactura>
<NumSerieFacturaEmisor>84.2.1.2566</NumSerieFacturaEmisor>
<FechaExpedicionFacturaEmisor>31/07/2022</FechaExpedicionFacturaEmisor>
</IdFactura>
<TipoFactura>F2</TipoFactura>
<FechaOperacion>31/07/2022</FechaOperacion>
<DescripcionOperacion>VENTA MINORISTA</DescripcionOperacion>
<Desglose>
<DetalleDesglose>
<ClaveRegimen>01</ClaveRegimen>
<CalificacionOperacion>S1</CalificacionOperacion>
<TipoImpositivo>4.00</TipoImpositivo>
<BaseImponibleOimporteNoSujeto>1.00</BaseImponibleOimporteNoSujeto>
<CuotaRepercutida>0.04</CuotaRepercutida>
</DetalleDesglose>
</Desglose>
<ImporteTotal>1.04</ImporteTotal>
<EncadenamientoFacturaAnterior>
<IDEmisorFacturaAnterior>00000006Y</IDEmisorFacturaAnterior>
<NumSerieFacturaAnterior>84.2.1.2565</NumSerieFacturaAnterior>
<FechaExpedicionFacturaAnterior>31/07/2022</FechaExpedicionFacturaAnterior>
<HuellaFacturaAnterior>9yYI6U89U3IUIQE345EUGWEBsd7EKFCBP9trtYUJSD0JFFKJKrtthAuysfadfWPE</HuellaFacturaAnterior>
</EncadenamientoFacturaAnterior>
<SistemaInformatico>
<NombreRazon>SISTEMAS INFORMATICOS TPV</NombreRazon>
<NIF>00000006Y</NIF>
<IdSistemaInformatico>IDENTIFICADOR AEAT XXXX</IdSistemaInformatico>
<Version>46.243.1</Version>
<NumeroInstalacion>45</NumeroInstalacion>
<TipoUsoSistema>01</TipoUsoSistema>
</SistemaInformatico>
</RegistroFacturacion>
con espacios de identación y sin el \r\n de la etiqueta de cierre final en un archivo y he guardado, y usando sha256 (tengo cygwin64 instalado) he calculado el hash256 del archivo,
y a mi me da el digest: c35917cbb3e483ed07e36db77c5f8c28790623751ced3cc6e67ba6e6c443fa0c
y no: 005948F5A441A56ABF584804036409719AB89892608FD708BAB8AE5088C896AD
como en el ejemplo mostrado en el foro.
He probado también quitando las 2 líneas vacias antes y depués de la etiqueta: </EncadenamientoFacturaAnterior> y tampoco me sale el mismo HASH.
Se ha de computar sin RC's ni LF's o sin los espacios de identación ?
Muchas gracias por vuestra labor de documentación ...
No hay nada en internet mejor que este foro ...
Un Saludo.
Última edición por usr3010 fecha: 27-02-2023 a las 18:47:17.
|