XML - Como puedo codificar archivos XML en base64

 
Vista:
Imágen de perfil de Luis
Val: 1
Ha mantenido su posición en XML (en relación al último mes)
Gráfica de XML

Como puedo codificar archivos XML en base64

Publicado por Luis (1 intervención) el 17/07/2019 03:15:29
Hola

Mediante Visual Basic 6 deseo leer archivos XML para codificarlos en base64.

He probado con archivos y cadenas de texto, pero no encontré con archivos XML, ya sea cargandolos o escritos en controles de texto, me dan respuestas distintas.

¿Cual es la forma correcta en que deben convertirse para tomar la verdadera?, son validos cuando llevan su etiqueta madre <?xml version="1.0" encoding="UTF-8"?>

y con sus guiones en etiquetas padre?? -<detalle>

No entiendo, :-(

Por ejemplo si usara este algoritmo, que de paso ignoro en qué lenguaje está, cómo deberia manipular el XML para tener la correcta conversión??, por ejemplo si lo abriera en Wordpad, los guiones no los veria ni tampoco su etiqueta madre <xml..., a diferencia si lo hiciera con algun navegador, donde estan todos.

1
2
3
4
5
6
7
8
9
10
11
12
13
public String codificarToBase64(String pArchivo) {
    try {
        if (pArchivo != null && !pArchivo.isEmpty()) {
            String vXmlB64 = Base64.getEncoder().encodeToString(pArchivo.getBytes(StandardCharsets.UTF_8));
            return vXmlB64;
        } else {
            return null;
        }
    } catch (Exception e) {
        LOG.error("codificarToBase64 || Exception");
        LogExcepcion.registrar(e, LOG);
        return null;
    }

Que hago??

Gracias
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de JUAN ARTURO
Val: 4
Ha mantenido su posición en XML (en relación al último mes)
Gráfica de XML

Como puedo codificar archivos XML en base64

Publicado por JUAN ARTURO (6 intervenciones) el 17/07/2019 09:08:00
Creo que debes migrar tu sistema de VB6 hacia .NET , y desarrollar por ejemplo cn Visual Studio 2017 o posterior, ya que .NET trae las clases criptográficas para que puedas hacer lo necesario (supongo que es para la facturacion electrónica).

La alternativa si no puedes migrar entonces es desarrolar con :NET una DLL que puedas luego incrustar en tu VB6 para que dicha DLL haga lo necesario con la croptografia y luego devolverlo a tu sistema VB6.

El codigo que estas publicando debe ser C# (C-Sharp) que es con que desarrolla en .NET, quien tambien acepta VB.NET (o ASP.NET si es para web).

Te muestro como convierto a BASE 64 un CERTIFICADO (.cer) con VB.NET:

1
2
3
4
Dim bRawData As Byte()
bRawData = ReadFile(rutaArchivoCer) ' Custom readFile (quita chars)
objCert.Import(bRawData)
Dim cadenaCERTIFICADO As String = Convert.ToBase64String(bRawData)

Otro Ejemplo:
1
2
3
4
5
6
Dim CerNo As String = ""
Dim CerSAT As System.Security.Cryptography.X509Certificates.X509Certificate
CerSAT = System.Security.Cryptography.X509Certificates.X509Certificate.CreateFromCertFile(rutaArchivoCer)
SerialNumber = StrReverse(System.Text.Encoding.ASCII.GetString(CerSAT.GetSerialNumber))
 
cadenaCERTIFICADO = Convert.ToBase64String(CerSAT.GetRawCertData)


En Mexico, el XML no se convierte a base64, solo los certificados (la llave publica y privada para encriptar y desencriptar)
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar