Ver Mensaje Individual
  #709  
Antiguo 21-02-2023
ermendalenda ermendalenda is offline
Miembro
 
Registrado: ago 2021
Posts: 872
Reputación: 3
ermendalenda Va por buen camino
XML
Es un tipo de fichero para almacenar información estructurada. Está estructura puede venir marcadas por unos formatos a partir de unas especificaciones (fichero XSD). La mayoría de los lenguajes actuales tienen funciones para facilitar su creación y lectura, aunque también podemos generarlo con lenguajes más antiguos con simples outputs a un fichero secuencial. Si los editas verás que son ficheros relativamente fáciles de entender.

XSD
Es un fichero que contiene las especificaciones para poder generar el XML, este fichero se usa para generar y comprobar correctamente los formatos de los XML. Normalmente se usa con funciones propias de cada lenguaje, pero se puede editar también manualmente.
HASH
Es el resultado de un algoritmo que genera una cadena de longitud fija (hash) a partir de otra cadena (o un fichero), la longitud de la cadena obtenida depende de la función hash que hayamos seleccionado, siendo las más comunes 2 del tipo Sha2: sha256 y sha512, ya se dejó de usar el tipo Sha1 ya que, a pesar de sus 160bits, se ha conseguido romper "fácilmente" la seguridad de la misma. Estas funciones devuelven una cadena de longitud fija, resultante de la aplicación de un algoritmo, por ejemplo la de sha256 devuelve una cadena de 256 bits(64 caracteres hexadecimales), cada vez que generamos el hash de una cadena, con la misma función, siempre nos va a devolver el mismo hash. El Hash no es reversible, es decir, no podemos extraer la cadena inicial desde un hash. Gracias al Hash podemos dar seguridad a las firmas.

UTF-8
Es un formato de codificación de caracteres que se usa para la codificación de correos y páginas webs.
Para generar los XML será necesario convertir determinados caracteres eapeciales(ñáé…) a este tipo de formato

URI ENCODE
Es otro formato que se usa en las direcciones de las páginas webs, para que los navegadores puedan interpretar ciertos caracteres y no es otra cosa que convertir una cadena a su valor hexadecimal de cada valor ascii de la cadena agregándole como prefijo el carácter "%" para que los navegadores lo interpreten y traduzcan adecuadamente. Nos será útil para generar el la cadena del QR para evitar los caracteres extraños que nos pueden dar problemas en la lectura de ese QR. O sea convierte caracteres (/+) por su equivalente hexadecimal y así al escanear el QR no tendremos problemas

BASE64 (ENCODE/DECODE)
Otro sistema de conversión de cadenas que usa 64 como base.
Cuando calculamos un HASH con la intención de utilizarlo para encadenamientos: generar QR, imprimir parte de ellos e insertarlo en un XML, hay que tener en cuenta que estos se generan con caracteres que pueden dar problemas en interpretación de los XML e incluso dependiendo el sistema de transmisión que utilicemos, puede dar problemas en la comunicación, por lo tanto, es necesario su conversión a este sistema, Base64.
El alfabeto Base64 se pueden agrupar en cuatro grupos:
Letras mayúsculas (0-25): ABCDEFGHIJKLMNOPQRSTUVWXYZ
Letras minúsculas (26-51): abcdefghijklmnopqrstuvwxyz
Dígitos decimales (52-61): 0123456789
Símbolos especiales (62-63): +/
Si abrimos un XML firmado y buscamos el identificador de la firma sólo nos vamos a encontrar estos caracteres.
Ya que parte del Hash en base64 va en el QR, podemos encontrarnos un problema a la hora, no de generarlo, si no a la hora de leerlo, ya que los 2 caracteres especiales +/ son interpretados de forma diferente al que necesitamos, por todos los navegadores, para no tener este problema convertimos esos 2 caracteres a URI*, pero esto no hay que realizarlo para el identificador Verifactu, que en este caso si debe/puede contenerlos.
Por otro lado hay que tener en cuenta que para calcular el CRC8 del QR si debe estar convertido esos caracteres a URI* pero, al igual que antes, no en el identificador.


ENCADENAMIENTO
Es la parte del blockchain que incluye ciertos datos de una factura(bloque de datos) anterior, estos datos son representativos de esa factura anterior, en el caso de las facturas son: el hash, la serie, el número y la fecha de emisión, incluyendose en la siguiente factura, reforzando, principalmente, la inviolabilidad de la factura anterior y así creando una cadena de datos continuo que si se modificará, posteriormente, rompería la cadena.

HUELLA
Son datos incluidos en un XML, que identifican con que software y dispositivo se ha emitido la factura: nombre, fabricante, licencia, versión y N. Serie del dispositivo.

Última edición por ermendalenda fecha: 21-02-2023 a las 19:07:09.
Responder Con Cita