Saltar al contenido

Cómo verificar si un string está codificado en Base64 o no

Si encuentras alguna parte que te causa duda puedes dejarlo en la sección de comentarios y haremos todo lo posible de ayudarte tan rápido como podamos.

Solución:

Puede utilizar la siguiente expresión regular para comprobar si un string está codificado en base64 o no:

^([A-Za-z0-9+/]4)*([A-Za-z0-9+/]3=|[A-Za-z0-9+/]2==)?$

En la codificación base64, el conjunto de caracteres es [A-Z, a-z, 0-9, and + /]. Si la longitud restante es menor que 4, el string está acolchado con '=' caracteres.

^([A-Za-z0-9+/]4)* significa el string comienza con 0 o más grupos base64.

([A-Za-z0-9+/]4|[A-Za-z0-9+/]3=|[A-Za-z0-9+/]2==)$ significa el string termina en una de tres formas: [A-Za-z0-9+/]4, [A-Za-z0-9+/]3= o [A-Za-z0-9+/]2==.

Si está usando Java, puede usar la biblioteca commons-codec

import org.apache.commons.codec.binary.Base64;

String stringToBeChecked = "...";
boolean isBase64 = Base64.isArrayByteBase64(stringToBeChecked.getBytes());

[UPDATE 1] Aviso de obsolescencia Usar en su lugar

Base64.isBase64(valor);

   /**
     * Tests a given byte array to see if it contains only valid characters within the Base64 alphabet. Currently the
     * method treats whitespace as valid.
     *
     * @param arrayOctet
     *            byte array to test
     * @return @code true if all bytes are valid characters in the Base64 alphabet or if the byte array is empty;
     *         @code false, otherwise
     * @deprecated 1.5 Use @link #isBase64(byte[]), will be removed in 2.0.
     */
    @Deprecated
    public static boolean isArrayByteBase64(final byte[] arrayOctet) 
        return isBase64(arrayOctet);
    

Bien tu puedes:

  • Comprueba que la longitud es un múltiplo de 4 caracteres
  • Verifique que todos los caracteres estén en el conjunto AZ, az, 0-9, +, / excepto el relleno al final que es 0, 1 o 2 ‘=’ caracteres

Si estás esperando que voluntad sea ​​base64, entonces probablemente pueda usar cualquier biblioteca disponible en su plataforma para probar para decodificarlo a un byte arraylanzando una excepción si no es una base 64 válida. Eso depende de su plataforma, por supuesto.

Comentarios y puntuaciones

Puedes secundar nuestro quehacer mostrando un comentario o dejando una puntuación te lo agradecemos.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)


Tags : /

Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *