17.12.2012 Views

Programmation PYTHON - Zenk - Security - Repository

Programmation PYTHON - Zenk - Security - Repository

Programmation PYTHON - Zenk - Security - Repository

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

270<br />

La bibliothèque standard<br />

TROISIÈME PARTIE<br />

Conversion, transformation de données<br />

base64<br />

Les algorithmes les plus fréquemment utilisés pour l’encodage de données, que ce<br />

soit pour leur transport ou leur hachage, sont fournis dans la bibliothèque standard<br />

sous forme de fonctions très simples d’usage.<br />

Cette section présente base64 et hashlib.<br />

base64 fournit des fonctions d’encodage et de décodage de données binaires au formats<br />

définis par la norme RFC3548, à savoir base16, base32 et base64. Cet encodage<br />

fait correspondre à chaque valeur un signe de l’alphabet base16, 32 ou 64. Il est utilisé<br />

pour transformer des données binaires en données texte qui peuvent être transportées<br />

dans certains protocoles d’échanges qui ne supportent que du texte, comme<br />

HTTP ou IMAP4.<br />

b64encode(chaîne[, altchars]) -> chaîne<br />

Encode les données contenues dans l’objet string chaine. Si altchars est spécifié et<br />

est différent de None, c’est un objet string de longueur 2, qui définit un caractère spécifique<br />

pour les caractères + et /. Cette variation permet de définir des flux base64<br />

compatibles avec certains formats, comme les URL.<br />

b64decode(chaîne[, altchars]) -> chaîne<br />

Décode les données contenues dans chaine.<br />

Les autres formats sont rarement utilisés, et le module base64 fournit des fonctions<br />

raccourcis pour encoder et décoder en base64, à savoir :<br />

encodestring(s) : équivalente à b64encode(s) ;<br />

decodestring(s) : équivalente à b64decode(s) ;<br />

encode(input, output) : encode le contenu pointé par l’objet input vers l’objet<br />

output. input et output sont des objets de type fichier ou assimilés, et doivent<br />

être ouverts dans les bons modes ;<br />

decode(input, output) : équivalente à encode(), mais pour le décodage.<br />

Encodage d’un fichier binaire<br />

>>> from base64 import encode, decode<br />

>>> fichier_pdf = open('CPS.pdf', 'r')<br />

>>> fichier_pdf_b64 = open('CPS.pdf.b64', 'w')<br />

>>> encode(fichier_pdf, fichier_pdf_b64)

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!