2011-08-04 18 views
5

Documentación para una API de terceros que estoy trabajando con estados:¿Qué son las cadenas codificadas con Base64 y cómo puedo generarlas en ruby?

"[O] ur API sólo acepta acolchado base 64 cadenas codificadas."

¿Qué son "cadenas codificadas Base64 acolchadas" y cómo puedo generarlas en Ruby. El siguiente código es mi primer intento de crear datos formateados JSON convertidos a Base64.

xa = Base64.encode64(a.to_json) 
+0

http://en.wikipedia.org/wiki/Base64#Padding esto podría ayudar – Earlz

Respuesta

5

El relleno que están hablando es en realidad parte de la misma base 64. Es el "=" y "==" al final. Base64 codifica paquetes de 3 bytes en 4 caracteres codificados. Así que si los datos de entrada tiene una longitud n y

  • n% 3 = 1 => "==" al final para el relleno
  • n% 3 = 2 => "=" al final para el relleno

No hay necesidad de cambiar el código.

2

Parece que las libretas de la biblioteca base64 están predeterminadas; el relleno en Base64 sería los caracteres = al final de los datos.

Se puede ver esto ejecutando el siguiente en la consola IRB:

irb(main):002:0> require 'base64' 
=> true 
irb(main):003:0> Base64.encode64('a') 
=> "YQ==\n" 

Sin acolchado, que no podía estar seguro de si YQ era todo o si le faltaba algo.

Cuestiones relacionadas