我们从Python开源项目中,提取了以下50个代码示例,用于说明如何使用binascii.a2b_base64()。
def b64decode(s, altchars=None, validate=False): """Decode the Base64 encoded bytes-like object or ASCII string s. Optional altchars must be a bytes-like object or ASCII string of length 2 which specifies the alternative alphabet used instead of the '+' and '/' characters. The result is returned as a bytes object. A binascii.Error is raised if s is incorrectly padded. If validate is False (the default), characters that are neither in the normal base-64 alphabet nor the alternative alphabet are discarded prior to the padding check. If validate is True, these non-alphabet characters in the input result in a binascii.Error. """ s = _bytes_from_decode_data(s) if altchars is not None: altchars = _bytes_from_decode_data(altchars) assert len(altchars) == 2, repr(altchars) s = s.translate(bytes.maketrans(altchars, b'+/')) if validate and not re.match(b'^[A-Za-z0-9+/]*={0,2}$', s): raise binascii.Error('Non-base64 digit found') return binascii.a2b_base64(s)
def decode(s, convert_eols=None): """Decode a raw base64 string. If convert_eols is set to a string value, all canonical email linefeeds, e.g. "\\r\\n", in the decoded text will be converted to the value of convert_eols. os.linesep is a good choice for convert_eols if you are decoding a text attachment. This function does not parse a full MIME header value encoded with base64 (like =?iso-8895-1?b?bmloISBuaWgh?=) -- please use the high level email.header class for that functionality. """ if not s: return s dec = a2b_base64(s) if convert_eols: return dec.replace(CRLF, convert_eols) return dec # For convenience and backwards compatibility w/ standard base64 module
def b64decode(s, altchars=None): """Decode a Base64 encoded string. s is the string to decode. Optional altchars must be a string of at least length 2 (additional characters are ignored) which specifies the alternative alphabet used instead of the '+' and '/' characters. The decoded string is returned. A TypeError is raised if s were incorrectly padded or if there are non-alphabet characters present in the string. """ if altchars is not None: s = _translate(s, {altchars[0]: '+', altchars[1]: '/'}) try: return binascii.a2b_base64(s) except binascii.Error, msg: # Transform this exception for consistency raise TypeError(msg)
def decode(s, convert_eols=None): """Decode a raw base64 string. If convert_eols is set to a string value, all canonical email linefeeds, e.g. "\\r\\n", in the decoded text will be converted to the value of convert_eols. os.linesep is a good choice for convert_eols if you are decoding a text attachment. This function does not parse a full MIME header value encoded with base64 (like =?iso-8895-1?b?bmloISBuaWgh?=) -- please use the high level email.Header class for that functionality. """ if not s: return s dec = a2b_base64(s) if convert_eols: return dec.replace(CRLF, convert_eols) return dec # For convenience and backwards compatibility w/ standard base64 module
def ab64_decode(data): """ decode from shortened base64 format which omits padding & whitespace. uses custom ``./`` altchars, but supports decoding normal ``+/`` altchars as well. it is primarily used by Passlib's custom pbkdf2 hashes. """ if isinstance(data, unicode): # needs bytes for replace() call, but want to accept ascii-unicode ala a2b_base64() try: data = data.encode("ascii") except UnicodeEncodeError: raise suppress_cause(ValueError("string argument should contain only ASCII characters")) return b64s_decode(data.replace(b".", b"+")) #============================================================================= # base32 codec #=============================================================================
def b64decode(s, altchars=None): """Decode a Base64 encoded string. s is the string to decode. Optional altchars must be a string of at least length 2 (additional characters are ignored) which specifies the alternative alphabet used instead of the '+' and '/' characters. The decoded string is returned. A TypeError is raised if s were incorrectly padded or if there are non-alphabet characters present in the string. """ if altchars is not None: s = s.translate(string.maketrans(altchars[:2], '+/')) try: return binascii.a2b_base64(s) except binascii.Error, msg: # Transform this exception for consistency raise TypeError(msg)
def decode(string): """Decode a raw base64 string, returning a bytes object. This function does not parse a full MIME header value encoded with base64 (like =?iso-8895-1?b?bmloISBuaWgh?=) -- please use the high level email.header class for that functionality. """ if not string: return bytes() elif isinstance(string, str): return a2b_base64(string.encode('raw-unicode-escape')) else: return a2b_base64(string) # For convenience and backwards compatibility w/ standard base64 module
def verify_rsa_sha1(request, rsa_public_key): """Verify a RSASSA-PKCS #1 v1.5 base64 encoded signature. Per `section 3.4.3`_ of the spec. Note this method requires the jwt and cryptography libraries. .. _`section 3.4.3`: http://tools.ietf.org/html/rfc5849#section-3.4.3 To satisfy `RFC2616 section 5.2`_ item 1, the request argument's uri attribute MUST be an absolute URI whose netloc part identifies the origin server or gateway on which the resource resides. Any Host item of the request argument's headers dict attribute will be ignored. .. _`RFC2616 section 5.2`: http://tools.ietf.org/html/rfc2616#section-5.2 """ norm_params = normalize_parameters(request.params) uri = normalize_base_string_uri(request.uri) message = construct_base_string(request.http_method, uri, norm_params).encode('utf-8') sig = binascii.a2b_base64(request.signature.encode('utf-8')) alg = _jwt_rs1_signing_algorithm() key = _prepare_key_plus(alg, rsa_public_key) return alg.verify(message, key, sig)
def Heuristics(self, data, noDecode=False): if data.lower().startswith('http:'): return data if data[::-1].lower().startswith('http:'): return data[::-1] if noDecode: return data try: decoded = binascii.a2b_hex(data) return self.Heuristics(decoded, True) except: if not re.compile(r'^[0-9a-zA-Z/=]+$').match(data): return data try: decoded = binascii.a2b_base64(data) return self.Heuristics(decoded, True) except: return data # bruteforce XOR; short strings (< 10) are keys
def handle_addl_headers(self, headers): for key, value in headers: if key == 'x-goog-hash': for hash_pair in value.split(','): alg, b64_digest = hash_pair.strip().split('=', 1) self.cloud_hashes[alg] = binascii.a2b_base64(b64_digest) elif key == 'x-goog-component-count': self.component_count = int(value) elif key == 'x-goog-generation': self.generation = value # Use x-goog-stored-content-encoding and # x-goog-stored-content-length to indicate original content length # and encoding, which are transcoding-invariant (so are preferable # over using content-encoding and size headers). elif key == 'x-goog-stored-content-encoding': self.content_encoding = value elif key == 'x-goog-stored-content-length': self.size = int(value)
def get_trex_daemon_log (self): """ Get Trex daemon log. :return: String representation of TRex daemon log :raises: + :exc:`trex_exceptions.TRexRequestDenied`, in case file could not be read. + ProtocolError, in case of error in JSON-RPC protocol. """ try: res = binascii.a2b_base64(self.server.get_trex_daemon_log()) if type(res) is bytes: return res.decode() return res except AppError as err: self._handle_AppError_exception(err.args[0]) except ProtocolError: raise finally: self.prompt_verbose_data()
def get_trex_log (self): """ Get TRex CLI output log :return: String representation of TRex log :raises: + :exc:`trex_exceptions.TRexRequestDenied`, in case file could not be fetched at server side. + ProtocolError, in case of error in JSON-RPC protocol. """ try: res = binascii.a2b_base64(self.server.get_trex_log()) if type(res) is bytes: return res.decode() return res except AppError as err: self._handle_AppError_exception(err.args[0]) except ProtocolError: raise finally: self.prompt_verbose_data()
def get_file(self, filepath): """ Gets content of file as bytes string from /tmp/trex_files or TRex server directory. :parameters: filepath : str a path to a file at server. it can be either relative to TRex server or absolute path starting with /tmp/trex_files :return: Content of the file :raises: + :exc:`trex_exceptions.TRexRequestDenied`, in case TRex is reserved for another user than the one trying to cancel the reservation. + ProtocolError, in case of error in JSON-RPC protocol. """ try: return binascii.a2b_base64(self.server.get_file(filepath)) except AppError as err: self._handle_AppError_exception(err.args[0]) except ProtocolError: raise finally: self.prompt_verbose_data()
def decode(s, convert_eols=None): """Decode a raw base64 string. If convert_eols is set to a string value, all canonical email linefeeds, e.g. "\\r\\n", in the decoded text will be converted to the value of convert_eols. os.linesep is a good choice for convert_eols if you are decoding a text attachment. This function does not parse a full MIME header value encoded with base64 (like =?iso-8859-1?b?bmloISBuaWgh?=) -- please use the high level email.header class for that functionality. """ if not s: return s dec = a2b_base64(s) if convert_eols: return dec.replace(CRLF, convert_eols) return dec # For convenience and backwards compatibility w/ standard base64 module
def uploadTimeSeries(request, seriesName): # TODO: check provider pass # TODO: check duplicated values data = json.loads(request.POST.get('toUpload')) seriesObj = Series.objects.get(name=seriesName) warnings.filterwarnings('ignore', '.*Invalid utf8 character string.*',) toInput = list() for i0, d0 in enumerate(data): toInput.append(Value(series=seriesObj, date=d0['date'][:-1], record=binascii.a2b_base64(d0['value']))) if i0 % 1000==0 and i0!=0: Value.objects.bulk_create(toInput) toInput = list() Value.objects.bulk_create(toInput) context = {'message': 'done!'} return HttpResponse( json.dumps(context), content_type="application/json" )
def setup_data(filter_method, filter_vars): code = marshal.loads(binascii.a2b_base64(filter_method)) func = types.FunctionType(code, globals(), "some_func_name") filter_vars, transactions, users, stock_payments, stock_payment_transactions, inventory_transactions, inventory = func( filter_vars=filter_vars, transactions=Transaction.objects.all(), users=User.objects.all(), stock_payments=StockPayment.objects.all(), stock_payment_transactions=StockPaymentTransaction.objects.all(), inventory_transactions=InventoryTransaction.objects.all(), inventory=Inventory.objects.all() ) LOOKUP_OBJECTS['Transaction'] = transactions LOOKUP_OBJECTS['User'] = users LOOKUP_OBJECTS['StockPayment'] = stock_payments LOOKUP_OBJECTS['StockPaymentTransaction'] = stock_payment_transactions LOOKUP_OBJECTS['Inventory'] = inventory LOOKUP_OBJECTS['InventoryTransaction'] = inventory_transactions
def b64decode(s, altchars=None, validate=False): """Decode a Base64 encoded byte string. s is the byte string to decode. Optional altchars must be a string of length 2 which specifies the alternative alphabet used instead of the '+' and '/' characters. The decoded string is returned. A binascii.Error is raised if s is incorrectly padded. If validate is False (the default), non-base64-alphabet characters are discarded prior to the padding check. If validate is True, non-base64-alphabet characters in the input result in a binascii.Error. """ s = _bytes_from_decode_data(s) if altchars is not None: altchars = _bytes_from_decode_data(altchars) assert len(altchars) == 2, repr(altchars) s = s.translate(bytes.maketrans(altchars, b'+/')) if validate and not re.match(b'^[A-Za-z0-9+/]*={0,2}$', s): raise binascii.Error('Non-base64 digit found') return binascii.a2b_base64(s)