mirror of
				https://github.com/python/cpython.git
				synced 2025-10-31 05:31:20 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			169 lines
		
	
	
	
		
			6.2 KiB
		
	
	
	
		
			TeX
		
	
	
	
	
	
			
		
		
	
	
			169 lines
		
	
	
	
		
			6.2 KiB
		
	
	
	
		
			TeX
		
	
	
	
	
	
| \section{\module{base64} ---
 | |
| 	 RFC 3548: Base16, Base32, Base64 Data Encodings}
 | |
| 
 | |
| \declaremodule{standard}{base64}
 | |
| \modulesynopsis{RFC 3548: Base16, Base32, Base64 Data Encodings}
 | |
| 
 | |
| 
 | |
| \indexii{base64}{encoding}
 | |
| \index{MIME!base64 encoding}
 | |
| 
 | |
| This module provides data encoding and decoding as specified in
 | |
| \rfc{3548}.  This standard defines the Base16, Base32, and Base64
 | |
| algorithms for encoding and decoding arbitrary binary strings into
 | |
| text strings that can be safely sent by email, used as parts of URLs,
 | |
| or included as part of an HTTP POST request.  The encoding algorithm is
 | |
| not the same as the \program{uuencode} program.
 | |
| 
 | |
| There are two interfaces provided by this module.  The modern
 | |
| interface supports encoding and decoding string objects using all
 | |
| three alphabets.  The legacy interface provides for encoding and
 | |
| decoding to and from file-like objects as well as strings, but only
 | |
| using the Base64 standard alphabet.
 | |
| 
 | |
| The modern interface, which was introduced in Python 2.4, provides:
 | |
| 
 | |
| \begin{funcdesc}{b64encode}{s\optional{, altchars}}
 | |
| Encode a string use Base64.
 | |
| 
 | |
| \var{s} is the string to encode.  Optional \var{altchars} must be a
 | |
| string of at least length 2 (additional characters are ignored) which
 | |
| specifies an alternative alphabet for the \code{+} and \code{/}
 | |
| characters.  This allows an application to e.g. generate URL or
 | |
| filesystem safe Base64 strings.  The default is \code{None}, for which
 | |
| the standard Base64 alphabet is used.
 | |
| 
 | |
| The encoded string is returned.
 | |
| \end{funcdesc}
 | |
| 
 | |
| \begin{funcdesc}{b64decode}{s\optional{, altchars}}
 | |
| Decode a Base64 encoded string.
 | |
| 
 | |
| \var{s} is the string to decode.  Optional \var{altchars} must be a
 | |
| string of at least length 2 (additional characters are ignored) which
 | |
| specifies the alternative alphabet used instead of the \code{+} and
 | |
| \code{/} characters.
 | |
| 
 | |
| The decoded string is returned.  A \exception{TypeError} is raised if
 | |
| \var{s} were incorrectly padded or if there are non-alphabet
 | |
| characters present in the string.
 | |
| \end{funcdesc}
 | |
| 
 | |
| \begin{funcdesc}{standard_b64encode}{s}
 | |
| Encode string \var{s} using the standard Base64 alphabet.
 | |
| \end{funcdesc}
 | |
| 
 | |
| \begin{funcdesc}{standard_b64decode}{s}
 | |
| Decode string \var{s} using the standard Base64 alphabet.
 | |
| \end{funcdesc}
 | |
| 
 | |
| \begin{funcdesc}{urlsafe_b64encode}{s}
 | |
| Encode string \var{s} using a URL-safe alphabet, which substitutes
 | |
| \code{-} instead of \code{+} and \code{_} instead of \code{/} in the
 | |
| standard Base64 alphabet.
 | |
| \end{funcdesc}
 | |
| 
 | |
| \begin{funcdesc}{urlsafe_b64decode}{s}
 | |
| Decode string \var{s} using a URL-safe alphabet, which substitutes
 | |
| \code{-} instead of \code{+} and \code{_} instead of \code{/} in the
 | |
| standard Base64 alphabet.
 | |
| \end{funcdesc}
 | |
| 
 | |
| \begin{funcdesc}{b32encode}{s}
 | |
| Encode a string using Base32.  \var{s} is the string to encode.  The
 | |
| encoded string is returned.
 | |
| \end{funcdesc}
 | |
| 
 | |
| \begin{funcdesc}{b32decode}{s\optional{, casefold\optional{, map01}}}
 | |
| Decode a Base32 encoded string.
 | |
| 
 | |
| \var{s} is the string to decode.  Optional \var{casefold} is a flag
 | |
| specifying whether a lowercase alphabet is acceptable as input.  For
 | |
| security purposes, the default is \code{False}.
 | |
| 
 | |
| \rfc{3548} allows for optional mapping of the digit 0 (zero) to the
 | |
| letter O (oh), and for optional mapping of the digit 1 (one) to either
 | |
| the letter I (eye) or letter L (el).  The optional argument
 | |
| \var{map01} when not \code{None}, specifies which letter the digit 1 should
 | |
| be mapped to (when \var{map01} is not \code{None}, the digit 0 is always
 | |
| mapped to the letter O).  For security purposes the default is
 | |
| \code{None}, so that 0 and 1 are not allowed in the input.
 | |
| 
 | |
| The decoded string is returned.  A \exception{TypeError} is raised if
 | |
| \var{s} were incorrectly padded or if there are non-alphabet characters
 | |
| present in the string.
 | |
| \end{funcdesc}
 | |
| 
 | |
| \begin{funcdesc}{b16encode}{s}
 | |
| Encode a string using Base16.
 | |
| 
 | |
| \var{s} is the string to encode.  The encoded string is returned.
 | |
| \end{funcdesc}
 | |
| 
 | |
| \begin{funcdesc}{b16decode}{s\optional{, casefold}}
 | |
| Decode a Base16 encoded string.
 | |
| 
 | |
| \var{s} is the string to decode.  Optional \var{casefold} is a flag
 | |
| specifying whether a lowercase alphabet is acceptable as input.  For
 | |
| security purposes, the default is \code{False}.
 | |
| 
 | |
| The decoded string is returned.  A \exception{TypeError} is raised if
 | |
| \var{s} were incorrectly padded or if there are non-alphabet
 | |
| characters present in the string.
 | |
| \end{funcdesc}
 | |
| 
 | |
| The legacy interface:
 | |
| 
 | |
| \begin{funcdesc}{decode}{input, output}
 | |
| Decode the contents of the \var{input} file and write the resulting
 | |
| binary data to the \var{output} file.
 | |
| \var{input} and \var{output} must either be file objects or objects that
 | |
| mimic the file object interface. \var{input} will be read until
 | |
| \code{\var{input}.read()} returns an empty string.
 | |
| \end{funcdesc}
 | |
| 
 | |
| \begin{funcdesc}{decodestring}{s}
 | |
| Decode the string \var{s}, which must contain one or more lines of
 | |
| base64 encoded data, and return a string containing the resulting
 | |
| binary data.
 | |
| \end{funcdesc}
 | |
| 
 | |
| \begin{funcdesc}{encode}{input, output}
 | |
| Encode the contents of the \var{input} file and write the resulting
 | |
| base64 encoded data to the \var{output} file.
 | |
| \var{input} and \var{output} must either be file objects or objects that
 | |
| mimic the file object interface. \var{input} will be read until
 | |
| \code{\var{input}.read()} returns an empty string.  \function{encode()}
 | |
| returns the encoded data plus a trailing newline character
 | |
| (\code{'\e n'}).
 | |
| \end{funcdesc}
 | |
| 
 | |
| \begin{funcdesc}{encodestring}{s}
 | |
| Encode the string \var{s}, which can contain arbitrary binary data,
 | |
| and return a string containing one or more lines of
 | |
| base64-encoded data.  \function{encodestring()} returns a
 | |
| string containing one or more lines of base64-encoded data
 | |
| always including an extra trailing newline (\code{'\e n'}).
 | |
| \end{funcdesc}
 | |
| 
 | |
| An example usage of the module:
 | |
| 
 | |
| \begin{verbatim}
 | |
| >>> import base64
 | |
| >>> encoded = base64.b64encode('data to be encoded')
 | |
| >>> encoded
 | |
| 'ZGF0YSB0byBiZSBlbmNvZGVk'
 | |
| >>> data = base64.b64decode(encoded)
 | |
| >>> data
 | |
| 'data to be encoded'
 | |
| \end{verbatim}
 | |
| 
 | |
| \begin{seealso}
 | |
|   \seemodule{binascii}{Support module containing \ASCII-to-binary
 | |
|                        and binary-to-\ASCII{} conversions.}
 | |
|   \seerfc{1521}{MIME (Multipurpose Internet Mail Extensions) Part One:
 | |
|           Mechanisms for Specifying and Describing the Format of
 | |
|           Internet Message Bodies}{Section 5.2, ``Base64
 | |
|           Content-Transfer-Encoding,'' provides the definition of the
 | |
|           base64 encoding.}
 | |
| \end{seealso}
 | 
