Python base64 模块,b85encode() 实例源码

我们从Python开源项目中,提取了以下18个代码示例,用于说明如何使用base64.b85encode()

项目:novault    作者:novault    | 项目源码 | 文件源码
def password( seed = None ):
    '''Generate a 128 bit password from seed'''
    if not seed: return 16
    password = list( b85encode( seed ). decode( 'latin_1' ))
    pass_len = len( password )  # always 20
    ornament = int. from_bytes( seed[ 12: ], 'little')
    for chr_class in ( '0123456789', 'abcdefghijklmnopqrstuvwxyz', 'ABCDEFGHIJKLMNOPQRSTUVWXYZ', '.,:[]/' ):
        pass_len += 1
        ornament, pos  = divmod( ornament, pass_len )
        ornament, char = divmod( ornament, len( chr_class ))
        password. insert( pos, chr_class[ char ])
    result = { 'password': ''. join( password )}
    result[ None ] = result[ 'password' ]
    return result

# btc
项目:deen    作者:takeshixx    | 项目源码 | 文件源码
def test_decode_base85(self):
        if sys.version_info.major != 3 or \
                sys.version_info.minor < 4:
            self.fail('Base85 support not available for the current Python version!')
        data_bytes = self._random_bytes()
        encoded_bytes = base64.b85encode(data_bytes)
        result = self._transformer.decode('base85', encoded_bytes)
        self.assertIsInstance(result, tuple)
        self.assertIsNone(result[1]), 'An error occurred during Base85 decoding'
        self.assertIsInstance(result[0], bytes,
            'Base85 decoding result should be bytes or bytearray, ' \
            'got %s instead' % type(result[0]))
        self.assertEqual(data_bytes, result[0])
        data_str = self._random_str()
        self.assertRaises(TypeError, functools.partial(
            self._transformer.decode, 'base85', data_str),
                        'Unexpected exception raised')
项目:tfc    作者:maqp    | 项目源码 | 文件源码
def setUp(self):
        self.msg = ("Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aenean condimentum consectetur purus quis"
                    " dapibus. Fusce venenatis lacus ut rhoncus faucibus. Cras sollicitudin commodo sapien, sed bibendu"
                    "m velit maximus in. Aliquam ac metus risus. Sed cursus ornare luctus. Integer aliquet lectus id ma"
                    "ssa blandit imperdiet. Ut sed massa eget quam facilisis rutrum. Mauris eget luctus nisl. Sed ut el"
                    "it iaculis, faucibus lacus eget, sodales magna. Nunc sed commodo arcu. In hac habitasse platea dic"
                    "tumst. Integer luctus aliquam justo, at vestibulum dolor iaculis ac. Etiam laoreet est eget odio r"
                    "utrum, vel malesuada lorem rhoncus. Cras finibus in neque eu euismod. Nulla facilisi. Nunc nec ali"
                    "quam quam, quis ullamcorper leo. Nunc egestas lectus eget est porttitor, in iaculis felis sceleris"
                    "que. In sem elit, fringilla id viverra commodo, sagittis varius purus. Pellentesque rutrum loborti"
                    "s neque a facilisis. Mauris id tortor placerat, aliquam dolor ac, venenatis arcu.")

        self.contact  = create_contact()
        self.settings = Settings(logfile_masking=True)

        compressed = zlib.compress(b'abcdefghijk', level=COMPRESSION_LEVEL)
        file_key   = os.urandom(KEY_LENGTH)
        encrypted  = encrypt_and_sign(compressed, key=file_key)
        encrypted += file_key
        encoded    = base64.b85encode(encrypted)

        self.short_f_data = (int_to_bytes(1) + int_to_bytes(2) + b'testfile.txt' + US_BYTE + encoded)
项目:corpushash    作者:NAMD    | 项目源码 | 文件源码
def _encode_token(self, token):
        """
        takes a token as input, if token is in encoding dictionary, looks its 
        hash up and returns it. else, hashes it, checks it for collisions 
        (overkill) while updating en(de)coding dictionaries.
        :param token: str: token.
        :return: str: hashed token
        """
        if token in self.encode_dictionary:
            return self.encode_dictionary[token]
        else:
            hashed_token, salt = hash_token(token, 
                                            hash_function=self.hash_function, 
                                            salt_length=self.salt_length,
                                            salt=self.one_salt)
            while hashed_token in self.decode_dictionary:
                hashed_token, salt = hash_token(token, 
                                               hash_function=self.hash_function,
                                               salt_length=self.salt_length,
                                               salt=None)
            self.decode_dictionary[hashed_token] = (token, 
                                                    base64.b85encode(salt).decode())
            self.encode_dictionary[token] = hashed_token
        return hashed_token
项目:corpushash    作者:NAMD    | 项目源码 | 文件源码
def hash_token(token, hash_function='sha256', salt_length=32, salt=None):
    """
    takes a token and hashes it along with a random salt of given length, 
    according to the specified hash function.
    :param token: str: string of any length
    :param hash_function: str: hash function to use (check hashlib library).
    :param salt_length: int: salt length in bytes.
    :param salt: bytes: only used for tests, specifies which salt to use.
    :return: str, bytes: hashed token (base85-decoded) and the random salt used.
    """
    if salt is None:
        salt = os.urandom(salt_length)
    token_hasher = hashlib.new(hash_function)
    token_hasher.update(token.encode() + salt)
    token_digest = token_hasher.digest()
    token_base85 = base64.b85encode(token_digest)
    hashed_token = token_base85.decode()
    return hashed_token, salt
项目:arch-security-tracker    作者:archlinux    | 项目源码 | 文件源码
def random_string(length=TRACKER_PASSWORD_LENGTH_MIN):
    salt = b85encode(urandom(length))
    return salt.decode()
项目:arch-security-tracker    作者:archlinux    | 项目源码 | 文件源码
def hash_password(password, salt):
    hashed = b85encode(shash(password, salt[:User.SALT_LENGTH]))
    return hashed.decode()[:User.PASSWORD_LENGTH]
项目:pypaperbak    作者:matheusd    | 项目源码 | 文件源码
def run_backup(self, args):
        """Run the backup operation."""                

        chunksize = args.chunksize
        encodefunc = base64.b85encode #FIXME: add arg        

        infile = open(args.infile, "rb")
        infile_size = os.path.getsize(infile.name)

        outfile = args.outfile        
        inputhash = hashlib.sha256() 
        framedata = self.frame_data_func(args)

        qr_count = infile_size / chunksize + 1
        self.logger.info('Original file size: %dKiB', infile_size / 1024)
        self.logger.info('Total number of QR codes: %d', qr_count)        

        exporter = self.setup_exporter(args, qr_count)

        qr_number = 0
        sizesofar = 0
        while True:
            bindata = infile.read(chunksize)
            if not bindata: break
            frame = framedata(bindata, qr_count, sizesofar)
            inputhash.update(bindata)
            sizesofar += len(bindata)

            qr_number += 1
            self.logger.info('Exporting QR %d of %d', qr_number, qr_count)

            encdata = encodefunc(frame).decode()            
            qr = pyqrcode.create(encdata)
            exporter.add_qr(qr)

        exporter.finish(inputhash)
        self.logger.info('Finished exporting')
        if args.sha256: 
            print('SHA-256 of input: %s' % inputhash.hexdigest())
项目:deen    作者:takeshixx    | 项目源码 | 文件源码
def encode(self, enc, data):
        assert isinstance(data, (bytearray, bytes))
        enc = enc.lower()
        assert self._in_list(enc, ENCODINGS),\
            'Unknown encoding %s' % enc
        if enc == 'base64':
            output = base64.b64encode(data)
        elif enc == 'base64 url':
            output = base64.urlsafe_b64encode(data)
        elif enc == 'base32':
            output = base64.b32encode(data)
        elif enc == 'base85':
            output = base64.b85encode(data)
        elif enc == 'hex':
            output = codecs.encode(data, 'hex')
        elif enc == 'url':
            # urllib requires str?
            output = urllibparse.quote_plus(data.decode())
            output = output.encode()
        elif enc == 'html':
            # html module requires str?
            output = html_encode(data.decode())
            output = output.encode()
        elif enc == 'rot13':
            output = codecs.encode(data.decode(), 'rot_13')
            output = output.encode()
        elif enc == 'utf8':
            output = codecs.encode(data.decode(), 'utf8')
        elif enc == 'utf16':
            output = codecs.encode(data.decode(), 'utf16')
        else:
            output = data
        return output
项目:deen    作者:takeshixx    | 项目源码 | 文件源码
def test_encode_base85(self):
        if sys.version_info.major != 3 or \
                sys.version_info.minor < 4:
            self.fail('Base85 support not available for the current Python version!')
        data_bytes = self._random_bytes()
        encoded_bytes = base64.b85encode(data_bytes)
        result_bytes = self._transformer.encode('base85', data_bytes)
        self.assertIsInstance(result_bytes, bytes,
            'Base85 encoding result should be bytes or bytearray, ' \
            'got %s instead' % type(result_bytes))
        self.assertEqual(encoded_bytes, result_bytes)
        data_str = self._random_str()
        self.assertRaises(TypeError, functools.partial(
            self._transformer.encode, 'base85', data_str),
                          'Unexpected exception raised')
项目:ouroboros    作者:pybee    | 项目源码 | 文件源码
def test_b85_padding(self):
        eq = self.assertEqual

        eq(base64.b85encode(b"x", pad=True), b'cmMzZ')
        eq(base64.b85encode(b"xx", pad=True), b'cz6H+')
        eq(base64.b85encode(b"xxx", pad=True), b'czAdK')
        eq(base64.b85encode(b"xxxx", pad=True), b'czAet')
        eq(base64.b85encode(b"xxxxx", pad=True), b'czAetcmMzZ')

        eq(base64.b85decode(b'cmMzZ'), b"x\x00\x00\x00")
        eq(base64.b85decode(b'cz6H+'), b"xx\x00\x00")
        eq(base64.b85decode(b'czAdK'), b"xxx\x00")
        eq(base64.b85decode(b'czAet'), b"xxxx")
        eq(base64.b85decode(b'czAetcmMzZ'), b"xxxxx\x00\x00\x00")
项目:kbe_server    作者:xiaohaoppy    | 项目源码 | 文件源码
def test_b85_padding(self):
        eq = self.assertEqual

        eq(base64.b85encode(b"x", pad=True), b'cmMzZ')
        eq(base64.b85encode(b"xx", pad=True), b'cz6H+')
        eq(base64.b85encode(b"xxx", pad=True), b'czAdK')
        eq(base64.b85encode(b"xxxx", pad=True), b'czAet')
        eq(base64.b85encode(b"xxxxx", pad=True), b'czAetcmMzZ')

        eq(base64.b85decode(b'cmMzZ'), b"x\x00\x00\x00")
        eq(base64.b85decode(b'cz6H+'), b"xx\x00\x00")
        eq(base64.b85decode(b'czAdK'), b"xxx\x00")
        eq(base64.b85decode(b'czAet'), b"xxxx")
        eq(base64.b85decode(b'czAetcmMzZ'), b"xxxxx\x00\x00\x00")
项目:tfc    作者:maqp    | 项目源码 | 文件源码
def test_invalid_encoding_raises_fr(self):
        # Setup
        payload = binascii.unhexlify('3f264d4189d7a091') + US_BYTE + base64.b85encode(b'filedata')

        # Test
        self.assertFR("Error: Received file name had invalid encoding.", process_received_file, payload, self.nick)
项目:tfc    作者:maqp    | 项目源码 | 文件源码
def test_invalid_name_raises_fr(self):
        # Setup
        payload = b'\x01filename' + US_BYTE + base64.b85encode(b'filedata')

        # Test
        self.assertFR("Error: Received file had an invalid name.", process_received_file, payload, self.nick)
项目:tfc    作者:maqp    | 项目源码 | 文件源码
def test_invalid_data_raises_fr(self):
        # Setup
        payload = b'testfile.txt' + US_BYTE + base64.b85encode(b'filedata') + b'\x01'

        # Test
        self.assertFR("Error: Received file had invalid encoding.", process_received_file, payload, self.nick)
项目:tfc    作者:maqp    | 项目源码 | 文件源码
def test_invalid_key_raises_fr(self):
        # Setup
        payload = b'testfile.txt' + US_BYTE + base64.b85encode(b'filedata')

        # Test
        self.assertFR("Error: Received file had an invalid key.", process_received_file, payload, self.nick)
项目:tfc    作者:maqp    | 项目源码 | 文件源码
def test_decryption_fail_raises_fr(self):
        # Setup
        f_data  = encrypt_and_sign(b'filedata', self.key)[::-1]
        payload = b'testfile.txt' + US_BYTE + base64.b85encode(f_data)

        # Test
        self.assertFR("Error: Decryption of file data failed.", process_received_file, payload, self.nick)
项目:tfc    作者:maqp    | 项目源码 | 文件源码
def test_successful_reception(self):
        # Setup
        compressed = zlib.compress(b'filedata', level=COMPRESSION_LEVEL)
        f_data     = encrypt_and_sign(compressed, self.key) + self.key
        payload    = b'testfile.txt' + US_BYTE + base64.b85encode(f_data)

        # Test
        self.assertIsNone(process_received_file(payload, self.nick))
        self.assertTrue(os.path.isfile(f'{DIR_RX_FILES}Alice/testfile.txt'))