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


Python Hash.SHA属性代码示例

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


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

示例1: new

# 需要导入模块: from Crypto import Hash [as 别名]
# 或者: from Crypto.Hash import SHA [as 别名]
def new(key, hashAlgo=None, mgfunc=None, label=b('')):
    """Return a cipher object `PKCS1OAEP_Cipher` that can be used to perform PKCS#1 OAEP encryption or decryption.

    :Parameters:
     key : RSA key object
      The key to use to encrypt or decrypt the message. This is a `Crypto.PublicKey.RSA` object.
      Decryption is only possible if *key* is a private RSA key.
     hashAlgo : hash object
      The hash function to use. This can be a module under `Crypto.Hash`
      or an existing hash object created from any of such modules. If not specified,
      `Crypto.Hash.SHA` (that is, SHA-1) is used.
     mgfunc : callable
      A mask generation function that accepts two parameters: a string to
      use as seed, and the lenth of the mask to generate, in bytes.
      If not specified, the standard MGF1 is used (a safe choice).
     label : string
      A label to apply to this particular encryption. If not specified,
      an empty string is used. Specifying a label does not improve
      security.
 
    :attention: Modify the mask generation function only if you know what you are doing.
      Sender and receiver must use the same one.
    """
    return PKCS1OAEP_Cipher(key, hashAlgo, mgfunc, label) 
开发者ID:mortcanty,项目名称:earthengine,代码行数:26,代码来源:PKCS1_OAEP.py

示例2: create_signature

# 需要导入模块: from Crypto import Hash [as 别名]
# 或者: from Crypto.Hash import SHA [as 别名]
def create_signature(self, secret_key, to_sign):
        sign = HMAC.new(secret_key, to_sign, SHA)
        return str(b64encode(sign.hexdigest().encode()))

    # creates device spec JSON 
开发者ID:eslavnov,项目名称:pylips,代码行数:7,代码来源:pylips.py

示例3: PBKDF1

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

    This function performs key derivation according an old version of
    the PKCS#5 standard (v1.5).
    
    This algorithm is called ``PBKDF1``. Even though it is still described
    in the latest version of the PKCS#5 standard (version 2, or RFC2898),
    newer applications should use the more secure and versatile `PBKDF2` instead.

    :Parameters:
     password : string
        The secret password or pass phrase 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. Default is 16 bytes, suitable for instance for `Crypto.Cipher.AES`.
     count : integer
        The number of iterations to carry out. It's recommended to use at least 1000.
     hashAlgo : module
        The hash algorithm to use, as a module or an object from the `Crypto.Hash` package.
        The digest length must be no shorter than ``dkLen``.
        The default algorithm is `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 ValueError("Selected hash algorithm has a too short digest (%d bytes)." % digest)
    if len(salt)!=8:
        raise ValueError("Salt is not 8 bytes long.")
    for i in xrange(count-1):
        pHash = pHash.new(pHash.digest())
    return pHash.digest()[:dkLen] 
开发者ID:mortcanty,项目名称:earthengine,代码行数:42,代码来源:KDF.py

示例4: PBKDF2

# 需要导入模块: from Crypto import Hash [as 别名]
# 或者: from Crypto.Hash import SHA [as 别名]
def PBKDF2(password, salt, dkLen=16, count=1000, prf=None):
    """Derive one or more keys from a password (or passphrase).

    This performs key derivation according to the PKCS#5 standard (v2.0),
    by means of the ``PBKDF2`` algorithm.

    :Parameters:
     password : string
        The secret password or pass phrase to generate the key from.
     salt : string
        A 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. It is recommended to be at least 8 bytes long.
     dkLen : integer
        The cumulative length of the desired keys. Default is 16 bytes, suitable for instance for `Crypto.Cipher.AES`.
     count : integer
        The number of iterations to carry out. It's recommended to use at least 1000.
     prf : callable
        A pseudorandom function. It must be a function that returns a pseudorandom string
        from two parameters: a secret and a salt. If not specified, HMAC-SHA1 is used.

    :Return: A byte string of length `dkLen` that can be used as key material.
        If you wanted multiple keys, just break up this string into segments of the desired length.
"""
    password = tobytes(password)
    if prf is None:
        prf = lambda p,s: HMAC.new(p,s,SHA1).digest()
    key = b('')
    i = 1
    while len(key)<dkLen:
        U = previousU = prf(password,salt+struct.pack(">I", i))
        for j in xrange(count-1):
            previousU = t = prf(password,previousU)
            U = strxor(U,t)
        key += U
        i = i + 1
    return key[:dkLen] 
开发者ID:mortcanty,项目名称:earthengine,代码行数:39,代码来源:KDF.py

示例5: get_tests

# 需要导入模块: from Crypto import Hash [as 别名]
# 或者: from Crypto.Hash import SHA [as 别名]
def get_tests(config={}):
    global test_data
    from Crypto.Hash import HMAC, MD5, SHA as SHA1, SHA256
    from common import make_mac_tests
    hashmods = dict(MD5=MD5, SHA1=SHA1, SHA256=SHA256, default=None)
    try:
        from Crypto.Hash import SHA224, SHA384, SHA512
        hashmods.update(dict(SHA224=SHA224, SHA384=SHA384, SHA512=SHA512))
        test_data += hashlib_test_data
    except ImportError:
        import sys
        sys.stderr.write("SelfTest: warning: not testing HMAC-SHA224/384/512 (not available)\n")
    return make_mac_tests(HMAC, "HMAC", test_data, hashmods) 
开发者ID:mortcanty,项目名称:earthengine,代码行数:15,代码来源:test_HMAC.py

示例6: test1

# 需要导入模块: from Crypto import Hash [as 别名]
# 或者: from Crypto.Hash import SHA [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:mortcanty,项目名称:earthengine,代码行数:6,代码来源:test_KDF.py

示例7: __init__

# 需要导入模块: from Crypto import Hash [as 别名]
# 或者: from Crypto.Hash import SHA [as 别名]
def __init__(self, key, hashAlgo, mgfunc, label):
        """Initialize this PKCS#1 OAEP cipher object.
        
        :Parameters:
         key : an RSA key object
          If a private half is given, both encryption and decryption are possible.
          If a public half is given, only encryption is possible.
         hashAlgo : hash object
                The hash function to use. This can be a module under `Crypto.Hash`
                or an existing hash object created from any of such modules. If not specified,
                `Crypto.Hash.SHA` (that is, SHA-1) is used.
         mgfunc : callable
                A mask generation function that accepts two parameters: a string to
                use as seed, and the lenth of the mask to generate, in bytes.
                If not specified, the standard MGF1 is used (a safe choice).
         label : string
                A label to apply to this particular encryption. If not specified,
                an empty string is used. Specifying a label does not improve
                security.
 
        :attention: Modify the mask generation function only if you know what you are doing.
                    Sender and receiver must use the same one.
        """
        self._key = key

        if hashAlgo:
            self._hashObj = hashAlgo
        else:
            self._hashObj = Crypto.Hash.SHA

        if mgfunc:
            self._mgf = mgfunc
        else:
            self._mgf = lambda x,y: Crypto.Signature.PKCS1_PSS.MGF1(x,y,self._hashObj)

        self._label = label 
开发者ID:mortcanty,项目名称:earthengine,代码行数:38,代码来源:PKCS1_OAEP.py

示例8: string_to_key

# 需要导入模块: from Crypto import Hash [as 别名]
# 或者: from Crypto.Hash import SHA [as 别名]
def string_to_key(cls, string, salt, params):
        (iterations,) = unpack('>L', params or '\x00\x00\x10\x00')
        prf = lambda p, s: HMAC.new(p, s, SHA).digest()
        seed = PBKDF2(string, salt, cls.seedsize, iterations, prf)
        tkey = cls.random_to_key(seed)
        return cls.derive(tkey, 'kerberos') 
开发者ID:joxeankoret,项目名称:CVE-2017-7494,代码行数:8,代码来源:crypto.py

示例9: prf

# 需要导入模块: from Crypto import Hash [as 别名]
# 或者: from Crypto.Hash import SHA [as 别名]
def prf(cls, key, string):
        return HMAC.new(key.contents, string, SHA).digest() 
开发者ID:joxeankoret,项目名称:CVE-2017-7494,代码行数:4,代码来源:crypto.py

示例10: _query

# 需要导入模块: from Crypto import Hash [as 别名]
# 或者: from Crypto.Hash import SHA [as 别名]
def _query(self, endpoint, params):

        # TODO: Figure this bullshit out
        import httplib
        httplib.HTTPConnection.debuglevel = 1
        requests_log = logging.getLogger("requests.packages.urllib3")
        requests_log.setLevel(logging.DEBUG)
        requests_log.propagate = True

        query_url = "%s/%s" % (self.url, endpoint)

        hmac = HMAC.new(self.key, digestmod=SHA)

        param_string = "=".join(params.items()[0])
        sig_data = "GET\n/%s\n%s\n\n" % (endpoint, param_string)

        log.debug(sig_data)

        hmac.update(sig_data)
        signature = hmac.digest()
        encoded = base64.b64encode(signature)

        r = requests.get(
            query_url,
            params=params,
            verify=False,
            headers={
                "Accept": self.json_header,
                "Authorization": "RiskIQ %s:%s" % (self.token, encoded)
            }
        )
        if r.status_code != requests.codes.ok:
            return self._error(
                self._get_indicator(params),
                endpoint,
                r
            )

        return r.json() 
开发者ID:salesforce,项目名称:threatshell,代码行数:41,代码来源:riskiq.py

示例11: create_signature

# 需要导入模块: from Crypto import Hash [as 别名]
# 或者: from Crypto.Hash import SHA [as 别名]
def create_signature(secret_key, to_sign):
    sign = HMAC.new(secret_key, to_sign, SHA)
    return str(b64encode(sign.hexdigest().encode())) 
开发者ID:suborb,项目名称:philips_android_tv,代码行数:5,代码来源:philips.py

示例12: hash_name

# 需要导入模块: from Crypto import Hash [as 别名]
# 或者: from Crypto.Hash import SHA [as 别名]
def hash_name(algorithm):
        """
        Return RSA hash name for DKIM algorithm.
        """
        return {
            RSA1: "SHA-1",
            RSA256: "SHA-256",
        }[algorithm] 
开发者ID:apple,项目名称:ccs-calendarserver,代码行数:10,代码来源:dkim.py

示例13: hash_func

# 需要导入模块: from Crypto import Hash [as 别名]
# 或者: from Crypto.Hash import SHA [as 别名]
def hash_func(algorithm):
        """
        Return RSA hash name for DKIM algorithm.
        """
        return {
            RSA1: SHA,
            RSA256: SHA256,
        }[algorithm] 
开发者ID:apple,项目名称:ccs-calendarserver,代码行数:10,代码来源:dkim.py

示例14: prf_numbytes

# 需要导入模块: from Crypto import Hash [as 别名]
# 或者: from Crypto.Hash import SHA [as 别名]
def prf_numbytes(self, secret, label, random, numbytes):
        hs = (len(secret)+1)/2
        s1 = secret[:hs]
        s2 = secret[-hs:]
        
        #print "randlen=",len(random)
        #print "hs=",hs
        #print "s1=",s1
        #print "s2=",s2
        #print "label+random=",label+random
        #print "label=",label
        #1) compute P_md5(secret_part_1, label+random)   
        md5_hmac=''
        block=HMAC.new(key=s1, 
                       msg=label+random,
                       digestmod=MD5).digest() 
        while len(md5_hmac)<numbytes:
            md5_hmac += HMAC.new(key=s1, 
                             msg=block+label+random,
                             digestmod=MD5).digest()
            
            block = HMAC.new(key=s1, 
                             msg=block,
                             digestmod=MD5).digest()
            #print [ "%.2x"%ord(i) for i in md5_hmac]
            
        md5_hmac=md5_hmac[:numbytes]
        # sha stuff
        sha_hmac=''
        block=HMAC.new(key=s2, 
                       msg=label+random,
                       digestmod=SHA).digest() 
        while len(sha_hmac)<numbytes:
            sha_hmac += HMAC.new(key=s2, 
                             msg=block+label+random,
                             digestmod=SHA).digest()
            
            block = HMAC.new(key=s2, 
                             msg=block,
                             digestmod=SHA).digest()
            #print [ "%.2x"%ord(i) for i in sha_hmac]
        # XOR both strings
        sha_hmac=sha_hmac[:numbytes]              
        
        m = array.array("B",md5_hmac)
        s = array.array("B",sha_hmac)

        for i in xrange(numbytes):
            m[i] ^= s[i]
            #print "%0.2x"%m[i],
            
        return m.tostring()
        
        '''
        data  = ''
        for block in self.prf(secret,label,seed):
            data +=block
            if len(data)>=numbytes:
                return data[:numbytes]
        ''' 
开发者ID:nimia,项目名称:public_drown_scanner,代码行数:62,代码来源:ssl_tls_crypto.py


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