Passa al contenuto principale

Appendix C. Notes on Implementing base64url Encoding without Padding (Note sull'implementazione della codifica base64url senza padding)

Questa appendice descrive come implementare la codifica base64url senza utilizzare il padding, come richiesto da questa specifica.

La codifica base64url è una variante della codifica base64 definita nella sezione 5 di RFC 4648 [RFC4648], utilizzando un set di caratteri sicuro per URL e nomi di file. Le uniche differenze sono:

  • Uso di '-' invece di '+'
  • Uso di '_' invece di '/'
  • Omissione dei caratteri di padding '='

Per implementare la codifica base64url senza padding:

  1. Codificare la sequenza di ottetti di input utilizzando un codificatore base64 standard
  2. Sostituire tutti i caratteri '+' con '-' nel risultato
  3. Sostituire tutti i caratteri '/' con '_' nel risultato
  4. Rimuovere tutti i caratteri '=' finali

Per decodificare una stringa codificata in base64url:

  1. Aggiungere caratteri '=' secondo necessità affinché la lunghezza della stringa sia un multiplo di 4
  2. Sostituire tutti i caratteri '-' con '+'
  3. Sostituire tutti i caratteri '_' con '/'
  4. Decodificare il risultato utilizzando un decodificatore base64 standard

Calcolo del padding:

Se lunghezza input mod 4 == 0, non è necessario padding. Se lunghezza input mod 4 == 2, aggiungere due caratteri '='. Se lunghezza input mod 4 == 3, aggiungere un carattere '='. Se lunghezza input mod 4 == 1, l'input è malformato.