ClubEnsayos.com - Ensayos de Calidad, Tareas y Monografias
Buscar

Actuacion Digital


Enviado por   •  2 de Febrero de 2013  •  6.191 Palabras (25 Páginas)  •  295 Visitas

Página 1 de 25

Base64

Base64 es un método de codificación aplicado a datos binarios para representar la información obtenida en una cadena de caracteres en código ASCII. Esto es, la información binaria se lee en grupos de bits y cada grupo se traduce en su representacion ASCII-Base64.

Se usa principalmente para enviar información sobre medios que estan hechos para lidiar con texto y no con información binaria.

Este procesamiento de datos es usado por Solución Factible® para asegurar su inalterabildiad cuando ésta sea recibida por nuestros servidores, por lo tanto, la información que el desarrollador o el sistema genere como output será exactamente la misma que se recibirá como input en nuestro sistema para su posterior manipulación.

Este tipo de codificación se usa en el elemento sello de los CFD's (comprobantes fiscales digitales como factura electronica, comprobantes de pago...) el cual será descrito con más detalle a continuación.

1.1.1. Encoding

Si tomamos la cadena de caracteres (String):

Hola mundo

Al codificarlo en base64 el resultado es:

SG9sYSBtdW5kbw==

Las letras "Hol" de la frase codificada anteriormente equivalen a la codificación en base 64: "SG9s", el proceso para la conversión se detalla en la tabla a continuación.

Texto H o l

ASCII 72 6F 6C

Patron de bites 0 1 0 0 1 0 0 0 0 1 1 0 1 1 1 1 0 1 1 0 1 1 0 0

Index 18 6 61 44

Codificación-Base64 S G 9 s

Tabla index base64

Value Char Value Char Value Char Value Char

0 A 16 Q 32 g 48 w

1 B 17 R 33 h 49 x

2 C 18 S 34 i 50 y

3 D 19 T 35 j 51 z

4 E 20 U 36 k 52 0

5 F 21 V 37 l 53 1

6 G 22 W 38 m 54 2

7 H 23 X 39 n 55 3

8 I 24 Y 40 o 56 4

9 J 25 Z 41 p 57 5

10 K 26 a 42 q 58 6

11 L 27 b 43 r 59 7

12 M 28 c 44 s 60 8

13 N 29 d 45 t 61 9

14 O 30 e 46 u 62 +

15 P 31 f 47 v 63 /

1.1.2. Decoding

Para decodificar la información se debe usar un proceso especial. Primero, se agrupa cada 4 caracteres codificados en base64 y se realinean como 3 bytes. Sin embargo, hay 2 casos que tienen que ser considerados al final del conjunto de bytes. Si los últimos caracteres de la cadena codificada en base64 se encuentran 1 o 2 caracteres '=' ó '=='. Si se encuentra un '=' entonces se debe desechar el último byte que se viene arrastrando. Si se encuentran '==' al final de la cadena, entonces, se deben desechar los 2 últimos bytes de la secuencia.

Otro proceso importante que se tiene que hacer es ignorar todo caracter de la cadena que no sea un caracter base64 válido.

1.1.3. Ejemplos de Código

JAVA

?

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25 import org.bouncycastle.util.encoders.Base64;

public class Main{

public static void main(String[] args) {

if (args.length > 0) {

for (int i = 0; i < args.length; i++) {

if (args[i].equals("-e") || args[i].equals("--encode")) {

String toEncode = args[i + 1] != null && args[i + 1].length() > 0 ? args[i + 1] : "";

toEncode = new String(toEncode.getBytes());

byte[] data = Base64.encode(toEncode.getBytes());

String encoded = new String(data);

System.out.println("Resultado de la codificación: " + encoded);

} else if (args[i].equals("-d") || args[i].equals("--decode")) {

String toDecode = args[i + 1] != null && args[i + 1].length() > 0 ? args[i + 1] : "";

byte[] data = Base64.decode(toDecode.getBytes());

String decoded = new String(data);

System.out.println("Resultado de la decodificación: " + decoded);

}

}

}else{

System.out.println("Nada que hacer...

...

Descargar como (para miembros actualizados)  txt (40.3 Kb)  
Leer 24 páginas más »
Disponible sólo en Clubensayos.com