12.12 base64 -- RFC 3548: codifiche di dati Base16, Base32, Base64

Questo modulo fornisce la codifica e la decodifica dei dati specificati dalla RFC 3548. Questo standard definisce gli algoritmi Base16, Base32 e Base64 per la codifica e la decodifica di stringhe binarie arbitrarie in stringhe di testo che possono essere tranquillamente spedite tramite email, usate come parti di URL o incluse come parti di richieste HTTP POST. L'algoritmo di codifica non è il medesimo usato dal programma uuencode.

Il modulo fornisce due diverse interfacce. L'interfaccia moderna supporta la codifica e la decodifica di oggetti stringa usando tre alfabeti. La vecchia interfaccia ereditata fornisce la codifica e la decodifica per e da oggetti simile a file come fossero stringhe, ma usa solamente l'alfabeto Base64 standard.

L'interfaccia moderna fornisce:

b64encode( s[, altchars])
Codifica in stringa usando Base64.

s è la stringa da codificare. Il facoltativo altchars deve essere una stringa di lunghezza minima 2 (ulteriori caratteri vengono ignorati) che specifichi un alfabeto alternativo per i caratteri + e /. Questo consente ad applicazioni, per esempio, di generare delle URL o filesystem sicuramente in stringhe Base64. Il valore predefinito è None, per cui viene usato l'alfabeto Base64 standard.

La stringa codificata viene restituita.

b64decode( s[, altchars])
Decodifica la stringa codificata in Base64.

s è la stringa da decodificare. Il facoltativo altchars deve essere una stringa di lunghezza minima 2 (ulteriori caratteri vengono ignorati) che specifichi un alfabeto alternativo da usare al posto dei caratteri + e /.

La stringa decodificata viene restituita. Viene sollevata un'eccezione TypeError se s non viene riempita correttamente o se nella stringa vi sono contenuti caratteri non alfabetici.

standard_b64encode( s)
Codifica la stringa s usando l'alfabeto Base64 standard.

standard_b64decode( s)
Decodifica la stringa s usando l'alfabeto Base64 standard.

urlsafe_b64encode( s)
Codifica la stringa s usando un alfabeto sicuro per le URL, che sostituisca + con - e / con _ nell'alfabeto Base64 standard.

urlsafe_b64decode( s)
Decodifica la stringa s usando un alfabeto sicuro per le URL, che sostituisca + con - e / con _ nell'alfabeto Base64 standard.

b32encode( s)
Codifica una stringa usando Base32. s è la stringa da codificare. La stringa codificata viene restituita.

b32decode( s[, casefold[, map01]])
Decodifica una stringa codificata in base32.

s è la stringa da decodificare. Il facoltativo casefold è un'opzione che specifica se un alfabeto in minuscolo sia accettabile in input. Per questioni di sicurezza, il valore predefinito viene impostato a False.

La RFC 3548 permette una facoltativa mappatura della cifra 0 (zero) con la lettera O (oh) e la sempre facoltativa mappatura della cifra 1 (uno) sia alla lettera I (eye) o la lettera (el). L'argomento facoltativo map01, quando non None, specifica quale lettera della cifra 1 deve essere mappata (quando map01 non è None, la cifra 0 è sempre mappata alla lettera O). Per questioni di sicurezza il valore predefinito è None, così 0 ed 1 non vengono permessi in input.

La stringa decodificata viene restituita. Viene sollevata un'eccezione TypeError se s non viene riempita correttamente o se nella stringa vi sono contenuti caratteri non alfabetici.

b16encode( s)
Codifica la stringa usando Base16.

s è la stringa da codificare. La stringa codificata viene restituita.

b16decode( s[, casefold])
Decodifica la stringa codificata in Base16.

s è la stringa da decodificare. Il facoltativo casefold è un'opzione che specifica se un alfabeto in minuscolo sia accettabile in input. Per questioni di sicurezza, il valore predefinito viene impostato a False.

La stringa decodificata viene restituita. Viene sollevata un'eccezione TypeError se s non viene riempita correttamente o se nella stringa vi sono contenuti caratteri non alfabetici.

La vecchia interfaccia ereditata:

decode( input, output)
Decodifica il contenuto del file input e scrive i dati binari risultanti sul file output. input ed output devono essere degli oggetti file, o qualsiasi altro oggetto che possiede almeno la stessa interfaccia di un oggetto file. input verrà letto finché input.read() non restituisce una stringa vuota.

decodestring( s)
Decodifica la stringa s, che deve contenere una o più linee di dati codificati in base64, e restituisce la stringa contenente i dati binari risultanti.

encode( input, output)
Codifica il contenuto del file input e scrive la stringa risultante nel file output. input ed output devono essere degli oggetti file, o qualsiasi altro oggetto che possiede almeno la stessa interfaccia di un oggetto file. input verrà letto finché input.read() non restituirà una stringa vuota. encode() restituisce i dati codificati insieme ad un carattere di fine riga ('\n').

encodestring( s)
Codifica la stringa s di dati binari qualsiasi e la converte in una stringa codificata in base64. encodestring() restituisce una stringa con un carattere di fine riga ('\n').

Vedete anche:

Modulo binascii:
Modulo di utilità che permette di convertire da ASCII a binario e viceversa.
RFC 1521, MIME (Multipurpose Internet Mail Extensions) Parte prima: Meccanismi per specificare e descrivere il corpo del messaggio su Internet
Sezione 5.2, ``Codifica-Trasferimento-Contenuto Base64'', fornisce la definizione della codifica base64.
Vedete Circa questo documento... per informazioni su modifiche e suggerimenti.