当前位置: 首页>>代码示例>>Python>>正文


Python Hash.SHA1属性代码示例

本文整理汇总了Python中Crypto.Hash.SHA1属性的典型用法代码示例。如果您正苦于以下问题:Python Hash.SHA1属性的具体用法?Python Hash.SHA1怎么用?Python Hash.SHA1使用的例子?那么恭喜您, 这里精选的属性代码示例或许可以为您提供帮助。您也可以进一步了解该属性所在Crypto.Hash的用法示例。


在下文中一共展示了Hash.SHA1属性的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。

示例1: create

# 需要导入模块: from Crypto import Hash [as 别名]
# 或者: from Crypto.Hash import SHA1 [as 别名]
def create(vek, keySizeBytes, certificatePath):
        #print("VEK: " + str(binascii.hexlify(vek)))
        publicKeyPem = open(certificatePath).read()
        publicKey = RSA.importKey(publicKeyPem)
        # Convert from PEM to DER

        lines = publicKeyPem.replace(" ", '').split()
        publicKeyDer = binascii.a2b_base64(''.join(lines[1:-1]))

        cert = x509.load_pem_x509_certificate(SmartStr(publicKeyPem), default_backend())
        subjectName = cert.subject.rfc4514_string()
        serial = cert.serial_number

        cipher = PKCS1_OAEP.new(key=publicKey, hashAlgo=SHA256, mgfunc=lambda x, y: pss.MGF1(x, y, SHA1))
        wrapped_key = cipher.encrypt(vek)
        #print("WrappedKey: " + str(binascii.hexlify(wrapped_key)))

        return CertEncryptedKeyBag(subjectName, serial, keySizeBytes, wrapped_key) 
开发者ID:aff4,项目名称:pyaff4,代码行数:20,代码来源:keybag.py

示例2: sha1

# 需要导入模块: from Crypto import Hash [as 别名]
# 或者: from Crypto.Hash import SHA1 [as 别名]
def sha1(self):
        """Get SHA1 hash
        
        The SHA (Secure Hash Algorithm) hash functions were designed by the NSA. 
        SHA-1 is the most established of the existing SHA hash functions and it is 
        used in a variety of security applications and protocols. However, SHA-1's 
        collision resistance has been weakening as new attacks are discovered or improved.

        Returns:
            Chepy: The Chepy object. 

        Examples:
            >>> Chepy("A").sha1().output
            "6dcd4ce23d88e2ee9568ba546c007c63d9131c1b"
        """
        self.state = hashlib.sha1(self._convert_to_bytes()).hexdigest()
        return self 
开发者ID:securisec,项目名称:chepy,代码行数:19,代码来源:hashing.py

示例3: testEncryptDecrypt2

# 需要导入模块: from Crypto import Hash [as 别名]
# 或者: from Crypto.Hash import SHA1 [as 别名]
def testEncryptDecrypt2(self):
                # Helper function to monitor what's requested from RNG
                global asked
                def localRng(N):
                    global asked
                    asked += N
                    return self.rng(N)
                # Verify that OAEP is friendly to all hashes
                for hashmod in (MD2,MD5,SHA1,SHA256,RIPEMD160):
                    # Verify that encrypt() asks for as many random bytes
                    # as the hash output size
                    asked = 0
                    pt = self.rng(40)
                    cipher = PKCS.new(self.key1024, hashmod, randfunc=localRng)
                    ct = cipher.encrypt(pt)
                    self.assertEqual(cipher.decrypt(ct), pt)
                    self.assertEqual(asked, hashmod.digest_size) 
开发者ID:vcheckzen,项目名称:FODI,代码行数:19,代码来源:test_pkcs1_oaep.py

示例4: hash_token

# 需要导入模块: from Crypto import Hash [as 别名]
# 或者: from Crypto.Hash import SHA1 [as 别名]
def hash_token(self):
        try:
            from Crypto.Hash import SHA1, HMAC
            command = "{}".format(CMD_GET_KEY)
            enc_command = await self.encrypt(command)
            await self._ws.send(enc_command)
            message = await self._ws.recv()
            await self.parse_loxone_message(message)
            message = await self._ws.recv()
            resp_json = json.loads(message)
            if 'LL' in resp_json:
                if "value" in resp_json['LL']:
                    key = resp_json['LL']['value']
                    if key != "":
                        digester = HMAC.new(binascii.unhexlify(key),
                                            self._token.token.encode("utf-8"), SHA1)
                        return digester.hexdigest()
            return ERROR_VALUE
        except:
            return ERROR_VALUE 
开发者ID:JoDehli,项目名称:PyLoxone,代码行数:22,代码来源:__init__.py

示例5: unwrap_key

# 需要导入模块: from Crypto import Hash [as 别名]
# 或者: from Crypto.Hash import SHA1 [as 别名]
def unwrap_key(self, privateKey):
        key = RSA.importKey(open(privateKey).read())
        cipher = PKCS1_OAEP.new(key=key, hashAlgo=SHA256, mgfunc=lambda x, y: pss.MGF1(x, y, SHA1))
        vek = cipher.decrypt(self.wrappedKey)
        #print("VEK: " + str(binascii.hexlify(vek)))
        return vek 
开发者ID:aff4,项目名称:pyaff4,代码行数:8,代码来源:keybag.py

示例6: testPKIWrap

# 需要导入模块: from Crypto import Hash [as 别名]
# 或者: from Crypto.Hash import SHA1 [as 别名]
def testPKIWrap(self):
        vek = binascii.unhexlify("000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f")

        publicKey = RSA.importKey(open(cert).read())
        cipher = PKCS1_OAEP.new(key=publicKey, hashAlgo=SHA256, mgfunc=lambda x, y: pss.MGF1(x, y, SHA1))
        ciphertext = cipher.encrypt(vek)

        key = RSA.importKey(open(privateKey).read())
        cipher = PKCS1_OAEP.new(key=key, hashAlgo=SHA256, mgfunc=lambda x, y: pss.MGF1(x, y, SHA1))
        vek2 = cipher.decrypt(ciphertext)
        self.assertEquals(vek, vek2) 
开发者ID:aff4,项目名称:pyaff4,代码行数:13,代码来源:test_crypto.py

示例7: PBKDF1

# 需要导入模块: from Crypto import Hash [as 别名]
# 或者: from Crypto.Hash import SHA1 [as 别名]
def PBKDF1(password, salt, dkLen, count=1000, hashAlgo=None):
    """Derive one key from a password (or passphrase).

    This function performs key derivation according to an old version of
    the PKCS#5 standard (v1.5) or `RFC2898
    <https://www.ietf.org/rfc/rfc2898.txt>`_.

    Args:
     password (string):
        The secret password to generate the key from.
     salt (byte string):
        An 8 byte string to use for better protection from dictionary attacks.
        This value does not need to be kept secret, but it should be randomly
        chosen for each derivation.
     dkLen (integer):
        The length of the desired key. The default is 16 bytes, suitable for
        instance for :mod:`Crypto.Cipher.AES`.
     count (integer):
        The number of iterations to carry out. The recommendation is 1000 or
        more.
     hashAlgo (module):
        The hash algorithm to use, as a module or an object from the :mod:`Crypto.Hash` package.
        The digest length must be no shorter than ``dkLen``.
        The default algorithm is :mod:`Crypto.Hash.SHA1`.

    Return:
        A byte string of length ``dkLen`` that can be used as key.
    """

    if not hashAlgo:
        hashAlgo = SHA1
    password = tobytes(password)
    pHash = hashAlgo.new(password+salt)
    digest = pHash.digest_size
    if dkLen > digest:
        raise TypeError("Selected hash algorithm has a too short digest (%d bytes)." % digest)
    if len(salt) != 8:
        raise ValueError("Salt is not 8 bytes long (%d bytes instead)." % len(salt))
    for i in iter_range(count-1):
        pHash = pHash.new(pHash.digest())
    return pHash.digest()[:dkLen] 
开发者ID:vcheckzen,项目名称:FODI,代码行数:43,代码来源:KDF.py

示例8: runTest

# 需要导入模块: from Crypto import Hash [as 别名]
# 或者: from Crypto.Hash import SHA1 [as 别名]
def runTest(self):

        key = b"\x04" * 20
        one = HMAC.new(key, b"", SHA1).digest()
        two = HMAC.new(key, None, SHA1).digest()
        self.assertEqual(one, two) 
开发者ID:vcheckzen,项目名称:FODI,代码行数:8,代码来源:test_HMAC.py

示例9: test1

# 需要导入模块: from Crypto import Hash [as 别名]
# 或者: from Crypto.Hash import SHA1 [as 别名]
def test1(self):
        v = self._testData[0]
        res = PBKDF1(v[0], t2b(v[1]), v[2], v[3], SHA1)
        self.assertEqual(res, t2b(v[4])) 
开发者ID:vcheckzen,项目名称:FODI,代码行数:6,代码来源:test_KDF.py

示例10: test2

# 需要导入模块: from Crypto import Hash [as 别名]
# 或者: from Crypto.Hash import SHA1 [as 别名]
def test2(self):
        # Verify that prf and hmac_hash_module are mutual exclusive
        def prf_SHA1(p,s):
            return HMAC.new(p,s,SHA1).digest()

        self.assertRaises(ValueError, PBKDF2, b("xxx"), b("yyy"), 16, 100,
                          prf=prf_SHA1, hmac_hash_module=SHA1) 
开发者ID:vcheckzen,项目名称:FODI,代码行数:9,代码来源:test_KDF.py

示例11: add_tests

# 需要导入模块: from Crypto import Hash [as 别名]
# 或者: from Crypto.Hash import SHA1 [as 别名]
def add_tests(self, filename):
        comps = "Crypto.SelfTest.Protocol.test_vectors.wycheproof".split(".")
        with open(pycryptodome_filename(comps, filename), "rt") as file_in:
            tv_tree = json.load(file_in)

        algo_name = tv_tree['algorithm']
        if algo_name == "HKDF-SHA-1":
            hash_module = SHA1
        elif algo_name == "HKDF-SHA-256":
            hash_module = SHA256
        elif algo_name == "HKDF-SHA-384":
            hash_module = SHA384
        elif algo_name == "HKDF-SHA-512":
            hash_module = SHA512
        else:
            raise ValueError("Unknown algorithm " + algo_name)

        for group in tv_tree['testGroups']:

            from collections import namedtuple
            TestVector = namedtuple('TestVector', 'id comment ikm salt info size okm hash_module valid warning filename')

            for test in group['tests']:
                tv = TestVector(
                    test['tcId'],
                    test['comment'],
                    unhexlify(test['ikm']),
                    unhexlify(test['salt']),
                    unhexlify(test['info']),
                    int(test['size']),
                    unhexlify(test['okm']),
                    hash_module,
                    test['result'] != "invalid",
                    test['result'] == "acceptable",
                    filename
                )
                self.tv.append(tv) 
开发者ID:vcheckzen,项目名称:FODI,代码行数:39,代码来源:test_KDF.py

示例12: _refresh_token

# 需要导入模块: from Crypto import Hash [as 别名]
# 或者: from Crypto.Hash import SHA1 [as 别名]
def _refresh_token(self):
        from Crypto.Hash import SHA1, HMAC
        command = "{}".format(CMD_GET_KEY)
        enc_command = await self.encrypt(command)
        await self._ws.send(enc_command)
        message = await self._ws.recv()
        resp_json = json.loads(message)
        token_hash = None
        if 'LL' in resp_json:
            if "value" in resp_json['LL']:
                key = resp_json['LL']['value']
                if key == "":
                    digester = HMAC.new(binascii.unhexlify(key),
                                        self._token.token.encode("utf-8"), SHA1)
                    token_hash = digester.hexdigest()

        if token_hash is not None:
            if self._version < 10.2:
                command = "{}{}/{}".format(CMD_REFRESH_TOKEN, token_hash,
                                           self._username)
            else:
                command = "{}{}/{}".format(CMD_REFRESH_TOKEN_JSON_WEB, token_hash,
                                           self._username)

            enc_command = await self.encrypt(command)
            await self._ws.send(enc_command)
            message = await self._ws.recv()
            resp_json = json.loads(message)

            _LOGGER.debug("Seconds before refresh: {}".format(
                self._token.get_seconds_to_expire()))

            if 'LL' in resp_json:
                if "value" in resp_json['LL']:
                    if "validUntil" in resp_json['LL']['value']:
                        self._token.set_vaild_until(
                            resp_json['LL']['value']['validUntil'])
            self.save_token() 
开发者ID:JoDehli,项目名称:PyLoxone,代码行数:40,代码来源:__init__.py

示例13: send_secured

# 需要导入模块: from Crypto import Hash [as 别名]
# 或者: from Crypto.Hash import SHA1 [as 别名]
def send_secured(self, device_uuid, value, code):
        from Crypto.Hash import SHA1, HMAC
        pwd_hash_str = code + ":" + self._visual_hash.salt
        m = hashlib.sha1()
        m.update(pwd_hash_str.encode('utf-8'))
        pwd_hash = m.hexdigest().upper()
        digester = HMAC.new(binascii.unhexlify(self._visual_hash.key),
                            pwd_hash.encode("utf-8"), SHA1)

        command = "jdev/sps/ios/{}/{}/{}".format(digester.hexdigest(), device_uuid, value)
        await self._ws.send(command) 
开发者ID:JoDehli,项目名称:PyLoxone,代码行数:13,代码来源:__init__.py

示例14: hash_credentials

# 需要导入模块: from Crypto import Hash [as 别名]
# 或者: from Crypto.Hash import SHA1 [as 别名]
def hash_credentials(self, key_salt):
        try:
            from Crypto.Hash import SHA1, HMAC
            pwd_hash_str = self._pasword + ":" + key_salt.salt
            m = hashlib.sha1()
            m.update(pwd_hash_str.encode('utf-8'))
            pwd_hash = m.hexdigest().upper()
            pwd_hash = self._username + ":" + pwd_hash
            digester = HMAC.new(binascii.unhexlify(key_salt.key),
                                pwd_hash.encode("utf-8"), SHA1)
            _LOGGER.debug("hash_credentials successfully...")
            return digester.hexdigest()
        except ValueError:
            _LOGGER.debug("error hash_credentials...")
            return None 
开发者ID:JoDehli,项目名称:PyLoxone,代码行数:17,代码来源:__init__.py

示例15: derive_pbkdf2_key

# 需要导入模块: from Crypto import Hash [as 别名]
# 或者: from Crypto.Hash import SHA1 [as 别名]
def derive_pbkdf2_key(
        self,
        password: Union[str, bytes],
        salt: Union[str, bytes],
        key_size: int = 256,
        iterations: int = 1000,
        hash_type: Literal["md5", "sha1", "sha256", "sh512"] = "sha1",
        hex_salt: bool = True,
        show_full_key: bool = False,
    ):
        """Derive a PBKDF2 key
        
        Args:
            password (Union[str, bytes]): Password
            salt (Union[str, bytes]): Salt
            key_size (int, optional): Key size. Defaults to 256.
            iterations (int, optional): Number of iterations. Defaults to 1000.
            hash_type (Literal[, optional): Hash type. Defaults to "sha1".
            hex_salt (bool, optional): If salt is in hex format. Defaults to True.
            show_full_key (bool, optional): Show AES256 64 bit key only. Defaults to False.
        
        Raises:
            TypeError: If hash type is not one of md5, sha1, sha256, sha512
        
        Returns:
            Chepy: The Chepy object. 

        Examples:
            >>> Chepy(".").derive_pbkdf2_key("mR3m", "d9016d44c374f5fb62604683f4d61578").o[:10]
            "7c8898f222"
        """        
        if isinstance(salt, str):
            salt = salt.encode()

        if hex_salt:
            salt = binascii.unhexlify(salt)

        if hash_type == "md5":
            h = PBKDF2(password, salt, key_size, count=iterations, hmac_hash_module=MD5)
        elif hash_type == "sha1":
            h = PBKDF2(password, salt, key_size, count=iterations, hmac_hash_module=SHA1)
        elif hash_type == "sha256":
            h = PBKDF2(password, salt, key_size, count=iterations, hmac_hash_module=SHA256)
        elif hash_type == "sha512":
            h = PBKDF2(password, salt, key_size, count=iterations, hmac_hash_module=SHA512)
        else:  # pragma: no cover
            raise TypeError(
                "Currently supported digests are md5, sha1, sha256 and sha512"
            )

        if show_full_key:
            self.state = h.hex()
        else:
            self.state = h.hex()[:64]
        return self 
开发者ID:securisec,项目名称:chepy,代码行数:57,代码来源:hashing.py


注:本文中的Crypto.Hash.SHA1属性示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。