當前位置: 首頁>>代碼示例>>Python>>正文


Python hashlib.blake2b方法代碼示例

本文整理匯總了Python中hashlib.blake2b方法的典型用法代碼示例。如果您正苦於以下問題:Python hashlib.blake2b方法的具體用法?Python hashlib.blake2b怎麽用?Python hashlib.blake2b使用的例子?那麽, 這裏精選的方法代碼示例或許可以為您提供幫助。您也可以進一步了解該方法所在hashlib的用法示例。


在下文中一共展示了hashlib.blake2b方法的15個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的Python代碼示例。

示例1: _get_hashes

# 需要導入模塊: import hashlib [as 別名]
# 或者: from hashlib import blake2b [as 別名]
def _get_hashes(path: Path) -> Dict[str, str]:
        sha256_manager = hashlib.sha256()
        md5_manager = hashlib.md5()
        if hasattr(hashlib, 'blake2b'):
            blake2_manager = hashlib.blake2b(digest_size=32)
        else:
            blake2_manager = None
        with path.open('rb') as stream:
            while True:
                data = stream.read(65536)
                if not data:
                    break
                sha256_manager.update(data)
                md5_manager.update(data)
                if blake2_manager:
                    blake2_manager.update(data)
        return dict(
            md5_digest=md5_manager.hexdigest(),
            sha256_digest=sha256_manager.hexdigest(),
            blake2_256_digest=blake2_manager.hexdigest(),
        ) 
開發者ID:dephell,項目名稱:dephell,代碼行數:23,代碼來源:_uploader.py

示例2: test_hash_same_as_nonchunked

# 需要導入模塊: import hashlib [as 別名]
# 或者: from hashlib import blake2b [as 別名]
def test_hash_same_as_nonchunked(self, event_loop, mock_dataset_with_manifest):
        ds, manifest, working_dir = mock_dataset_with_manifest
        sh = SmartHash(ds.root_dir, manifest.cache_mgr.cache_root, manifest.dataset_revision)
        cache_dir = manifest.cache_mgr.cache_root
        revision = manifest.dataset_revision

        filename = "test1.txt"
        helper_append_file(cache_dir, revision, filename, "asdfdsfgkdfshuhwedfgft345wfd" * 100000)
        assert sh.fast_hash_data == {}
        assert sh.is_cached(filename) is False
        assert os.path.exists(os.path.join(cache_dir, revision, ".smarthash")) is False

        hash_result = await sh.hash([filename])
        hash_result = hash_result[0]
        h = blake2b()
        with open(sh.get_abs_path(filename), 'rb') as fh:
            h.update(fh.read())

        assert hash_result == h.hexdigest() 
開發者ID:gigantum,項目名稱:gigantum-client,代碼行數:21,代碼來源:test_hash.py

示例3: __init__

# 需要導入模塊: import hashlib [as 別名]
# 或者: from hashlib import blake2b [as 別名]
def __init__(self, code: str, key: bytes, ns_manager: BuiltInManager):
        self.symbol_table: symtable = symtable(code, '<string>', 'exec')
        self.code: str = code
        self.input_vars: List[SymbolWrapper] = CodeObject._find_input_variables(self.symbol_table, ns_manager
                                                                                )
        self.output_vars: FrozenSet[SymbolWrapper] = CodeObject._find_output_variables(self.symbol_table
                                                                                       )

        h = blake2b(digest_size=10, key=key)
        if len(self.output_vars) > 0:
            display_id_prefix = "+".join(map(str, self.output_vars))
            h.update(display_id_prefix.encode('utf-8'))
            self.display_id = f"{display_id_prefix}-{h.hexdigest()}"
        else:
            h.update(self.code.encode('utf-8'))
            self.display_id = f"{h.hexdigest()}" 
開發者ID:jupytercalpoly,項目名稱:reactivepy,代碼行數:18,代碼來源:code_object.py

示例4: ss58_encode

# 需要導入模塊: import hashlib [as 別名]
# 或者: from hashlib import blake2b [as 別名]
def ss58_encode(address, address_type=42):
    checksum_prefix = b'SS58PRE'

    if type(address) is bytes or type(address) is bytearray:
        address_bytes = address
    else:
        address_bytes = bytes.fromhex(address)

    if len(address_bytes) == 32:
        # Checksum size is 2 bytes for public key
        checksum_length = 2
    elif len(address_bytes) in [1, 2, 4, 8]:
        # Checksum size is 1 byte for account index
        checksum_length = 1
    else:
        raise ValueError("Invalid length for address")

    address_format = bytes([address_type]) + address_bytes
    checksum = blake2b(checksum_prefix + address_format).digest()

    return base58.b58encode(address_format + checksum[:checksum_length]).decode() 
開發者ID:polkascan,項目名稱:py-scale-codec,代碼行數:23,代碼來源:ss58.py

示例5: create_from_account_list

# 需要導入模塊: import hashlib [as 別名]
# 或者: from hashlib import blake2b [as 別名]
def create_from_account_list(cls, accounts, threshold):
        from scalecodec.utils.ss58 import ss58_decode

        account_ids = []
        for account in accounts:
            if account[0:2] != '0x':
                account = '0x{}'.format(ss58_decode(account))
            account_ids.append(account)

        account_list_cls = cls.get_decoder_class('Vec<AccountId>')
        account_list_data = account_list_cls.encode(sorted(account_ids))
        threshold_data = cls.get_decoder_class("u16").encode(threshold)

        multi_account_id = "0x{}".format(blake2b(
            b"modlpy/utilisuba" + bytes(account_list_data.data) + bytes(threshold_data.data), digest_size=32
        ).digest().hex())

        multi_account_obj = cls()
        multi_account_obj.encode(multi_account_id)

        return multi_account_obj 
開發者ID:polkascan,項目名稱:py-scale-codec,代碼行數:23,代碼來源:types.py

示例6: make_key

# 需要導入模塊: import hashlib [as 別名]
# 或者: from hashlib import blake2b [as 別名]
def make_key(self, key: Union[str, handlers.HandlerId], max_length: int = 63) -> str:

        # K8s has a limitation on the allowed charsets in annotation/label keys.
        # https://kubernetes.io/docs/concepts/overview/working-with-objects/annotations/#syntax-and-character-set
        safe_key = key.replace('/', '.')

        # K8s has a limitation of 63 chars per annotation/label key.
        # Force it to 63 chars by replacing the tail with a consistent hash (with full alphabet).
        # Force it to end with alnums instead of altchars or trailing chars (K8s requirement).
        prefix = f'{self.prefix}/' if self.prefix else ''
        if len(safe_key) <= max_length - len(prefix):
            suffix = ''
        else:
            digest = hashlib.blake2b(safe_key.encode('utf-8'), digest_size=4).digest()
            alnums = base64.b64encode(digest, altchars=b'-.').decode('ascii')
            suffix = f'-{alnums}'.rstrip('=-.')

        full_key = f'{prefix}{safe_key[:max_length - len(prefix) - len(suffix)]}{suffix}'
        return full_key 
開發者ID:zalando-incubator,項目名稱:kopf,代碼行數:21,代碼來源:progress.py

示例7: __init__

# 需要導入模塊: import hashlib [as 別名]
# 或者: from hashlib import blake2b [as 別名]
def __init__(self, pw=None):
        """
        Args:
            pw (byte-like): A password that deterministically generates the key.
        """
        super().__init__()
        if not pw:
            self.key = None
            self.keyParams = None
            return
        # If a password was provided, create a new set of key parameters and an
        # authentication code.
        salt = rando.newKey()
        _, hashName, iterations = defaultKDFParams()
        b = ByteArray(
            hashlib.pbkdf2_hmac(hashName, bytes(pw), salt.bytes(), iterations)
        )
        self.key = b[:32]
        self.keyParams = KDFParams(salt)
        authKey = b[32:].bytes()
        authMsg = self.keyParams.baseParams().bytes()
        self.keyParams.auth = ByteArray(
            hashlib.blake2b(authMsg, digest_size=32, key=authKey).digest()
        ) 
開發者ID:decred,項目名稱:tinydecred,代碼行數:26,代碼來源:crypto.py

示例8: blake2bchecksum

# 需要導入模塊: import hashlib [as 別名]
# 或者: from hashlib import blake2b [as 別名]
def blake2bchecksum(file_path):
    """
    Calculates hash of the file

    Parameters
    ----------
    file_path : str
        path to the file
    """
    with open(file_path, 'rb') as fh:
        m = hashlib.blake2b()
        while True:
            data = fh.read(8192)
            if not data:
                break
            m.update(data)
        return m.hexdigest() 
開發者ID:machine-intelligence-laboratory,項目名稱:TopicNet,代碼行數:19,代碼來源:routine.py

示例9: sign

# 需要導入模塊: import hashlib [as 別名]
# 或者: from hashlib import blake2b [as 別名]
def sign(self, key):
        '''Sign this transaction with a private key.

        A potentially already existing signature would be overridden.
        '''
        h = blake2b(digest_size=32)
        h.update(rlp.encode(self, ThorTransaction.exclude(["Signature"])))
        rawhash = h.digest()

        if key in (0, "", b"\x00" * 32, "0" * 64):
            raise Exception("Zero privkey cannot sign")

        if len(key) == 64:
            key = to_bytes(hexstr=key)  # we need a binary key
        pk = keys.PrivateKey(key)

        self.Signature = pk.sign_msg_hash(rawhash).to_bytes()


#
# estimate eth gas
# 
開發者ID:vechain,項目名稱:web3-gear,代碼行數:24,代碼來源:compat.py

示例10: blake

# 需要導入模塊: import hashlib [as 別名]
# 或者: from hashlib import blake2b [as 別名]
def blake(x):
    return blake2b(x).digest()[:32] 
開發者ID:ethereum,項目名稱:beacon_chain,代碼行數:4,代碼來源:blake.py

示例11: hash

# 需要導入模塊: import hashlib [as 別名]
# 或者: from hashlib import blake2b [as 別名]
def hash(x):
    return blake2b(x).digest()[:32] 
開發者ID:ethereum,項目名稱:beacon_chain,代碼行數:4,代碼來源:hash_ssz.py

示例12: hash

# 需要導入模塊: import hashlib [as 別名]
# 或者: from hashlib import blake2b [as 別名]
def hash(self) -> str:
        """ Returns the Blake2b hash of the view """
        b2b = hashlib.blake2b()
        with open(self._path, "rb") as f:
            for chunk in iter(lambda: f.read(8192), b""):
                b2b.update(chunk)
        return b2b.hexdigest() 
開發者ID:MolSSI,項目名稱:QCPortal,代碼行數:9,代碼來源:dataset_view.py

示例13: get_name

# 需要導入模塊: import hashlib [as 別名]
# 或者: from hashlib import blake2b [as 別名]
def get_name( s ):
    full_name = s.get_full_name()
    if len(full_name) < 64:
      return full_name
    param_hash = blake2b(digest_size = 8)
    param_hash.update(s.get_field_str().encode('ascii'))
    return f'{s.cls.__name__}__{param_hash.hexdigest()}'

  # def get_file_info( s ):
    # return s.file_info 
開發者ID:pymtl,項目名稱:pymtl3,代碼行數:12,代碼來源:RTLIRDataType.py

示例14: get_component_unique_name

# 需要導入模塊: import hashlib [as 別名]
# 或者: from hashlib import blake2b [as 別名]
def get_component_unique_name( c_rtype ):
  full_name = get_component_full_name( c_rtype )
  special_chars = [' ', '<', '>', '.']

  if len( full_name ) < 64 and not any([c in full_name for c in special_chars]):
    return full_name

  comp_name = c_rtype.get_name()
  param_hash = blake2b(digest_size = 8)
  param_hash.update(full_name[len(comp_name):].encode('ascii'))
  param_name = param_hash.hexdigest()
  return comp_name + "__" + param_name 
開發者ID:pymtl,項目名稱:pymtl3,代碼行數:14,代碼來源:utility.py

示例15: get_file_hash

# 需要導入模塊: import hashlib [as 別名]
# 或者: from hashlib import blake2b [as 別名]
def get_file_hash( file_path ):
  with open(file_path) as fd:
    hash_inst = blake2b()
    string = ''.join( fd.readlines() ).encode( 'ascii' )
    hash_inst.update(string)
    return hash_inst.hexdigest() 
開發者ID:pymtl,項目名稱:pymtl3,代碼行數:8,代碼來源:utility.py


注:本文中的hashlib.blake2b方法示例由純淨天空整理自Github/MSDocs等開源代碼及文檔管理平台,相關代碼片段篩選自各路編程大神貢獻的開源項目,源碼版權歸原作者所有,傳播和使用請參考對應項目的License;未經允許,請勿轉載。