Exemple #1
0
    def __init__(self):
        # Define Supported hashes
        hashes = dict()
        hashes['md2'] = lambda x: self._get_md2_hash(x)
        hashes['md4'] = lambda x: self._get_hashlib_hash('md4', x)
        hashes['md5'] = lambda x: hashlib.md5(x).hexdigest()
        hashes['sha'] = lambda x: self._get_hashlib_hash('sha', x)
        hashes['sha1'] = lambda x: hashlib.sha1(x).hexdigest()
        hashes['sha256'] = lambda x: hashlib.sha256(x).hexdigest()
        hashes['sha224'] = lambda x: hashlib.sha224(x).hexdigest()
        hashes['sha384'] = lambda x: hashlib.sha384(x).hexdigest()
        hashes['sha512'] = lambda x: hashlib.sha512(x).hexdigest()
        hashes['sha3_224'] = lambda x: sha3.sha3_224(x).hexdigest()
        hashes['sha3_256'] = lambda x: sha3.sha3_256(x).hexdigest()
        hashes['sha3_384'] = lambda x: sha3.sha3_384(x).hexdigest()
        hashes['sha3_512'] = lambda x: sha3.sha3_512(x).hexdigest()
        hashes['mmh2'] = lambda x: str(mmhash.get_hash(x))
        hashes['mmh2_unsigned'] = lambda x: str(mmhash.get_unsigned_hash(x))
        hashes['mmh3_32'] = lambda x: str(mmh3.hash(x))
        hashes['mmh3_64_1'] = lambda x: str(mmh3.hash64(x)[0])
        hashes['mmh3_64_2'] = lambda x: str(mmh3.hash64(x)[1])
        hashes['mmh3_128'] = lambda x: str(mmh3.hash128(x))
        hashes['ripemd160'] = lambda x: self._get_hashlib_hash('ripemd160', x)
        hashes['whirlpool'] = lambda x: self._get_hashlib_hash('whirlpool', x)
        hashes['blake2b'] = lambda x: pyblake2.blake2b(x).hexdigest()
        hashes['blake2s'] = lambda x: pyblake2.blake2s(x).hexdigest()
        hashes['crc32'] = lambda x: str(zlib.crc32(x))
        hashes['adler32'] = lambda x: str(zlib.adler32(x))

        self._hashes = hashes
        self.hashes_and_checksums = self._hashes.keys()
        self.supported_hashes = HASHES
Exemple #2
0
def SHA3_384(filePath):
    # make a hash object
    h = sha3.sha3_384()
    with open(filePath, 'rb') as fh:
        # loop till the end of the file
        chunk = 0
        while chunk != b'':
            # read only 1024 bytes at a time
            chunk = fh.read(1024)
            h.update(chunk)


# return the hex representation of digest
    return h.hexdigest()
Exemple #3
0
def sha3_384(string, salt=None, front=False, back=False, **placeholder):
    """
      Create a SHA3 384 hash from a given string

      > :param string: string to hash
      > :return: SHA3 384 hash

      Example:
        >>> sha3_384("test")
        e516dabb23b6e30026863543282780a3ae0dccf05551cf0295178d7ff0f1b41eecb9db3ff219007c4e097260d58621bd
    """
    obj = sha3.sha3_384()
    if salt is not None and front is True and not back:
        obj.update(salt + string)
    elif salt is not None and back is True and not front:
        obj.update(string + salt)
    else:
        obj.update(string)
    return obj.hexdigest()
Exemple #4
0
import sha3

data = 'maydata'
s = sha3.sha3_224(data.encode('utf-8')).hexdigest()
print(s)
data = 'maydata'
s = sha3.sha3_384(data.encode('utf-8')).hexdigest()
print(s)
data = 'maydata'
s = sha3.sha3_512(data.encode('utf-8')).hexdigest()
print(s)
Exemple #5
0
def shaAlgorithms(mode, vectors, number):
    shaTimes = []
    vectores = HashVectorInput(vectors)
    for i in range(len(vectores)):
        if vectores[i] == "million":
            vectores[i] = 'a' * 1000000
        plaintext = bytearray(vectores[i], 'utf-8')
        if mode == 1:
            t = time.perf_counter()
            h = hashlib.sha384(plaintext)
            elapsedTime = time.perf_counter() - t
            shaTimes.append(elapsedTime)
            diggest = h.digest().hex().upper()
            print("Hash SHA384:", diggest)
        elif mode == 2:
            t = time.perf_counter()
            h = hashlib.sha512(plaintext)
            elapsedTime = time.perf_counter() - t
            shaTimes.append(elapsedTime)
            diggest = h.digest().hex().upper()
            print("Hash SHA512:", diggest)
        elif mode == 3:
            t = time.perf_counter()
            h = sha3.sha3_384(plaintext)
            elapsedTime = time.perf_counter() - t
            shaTimes.append(elapsedTime)
            diggest = h.digest().hex().upper()
            print("Hash SHA3_384:", diggest)
        elif mode == 4:
            t = time.perf_counter()
            h = sha3.sha3_512(plaintext)
            elapsedTime = time.perf_counter() - t
            shaTimes.append(elapsedTime)
            diggest = h.digest().hex().upper()
            print("Hash SHA3_512:", diggest)

    for n in range(0, number // 8):
        plaintext = (b'\x00') * n
        if mode == 1:
            t = time.perf_counter()
            h = hashlib.sha384(plaintext)
            elapsedTime = time.perf_counter() - t
            shaTimes.append(elapsedTime)
            diggest = h.digest().hex().upper()
        if mode == 2:
            t = time.perf_counter()
            h = hashlib.sha512(plaintext)
            elapsedTime = time.perf_counter() - t
            shaTimes.append(elapsedTime)
            diggest = h.digest().hex().upper()
        if mode == 3:
            t = time.perf_counter()
            h = sha3.sha3_384(plaintext)
            elapsedTime = time.perf_counter() - t
            shaTimes.append(elapsedTime)
            diggest = h.digest().hex().upper()
        if mode == 4:
            t = time.perf_counter()
            h = sha3.sha3_512(plaintext)
            elapsedTime = time.perf_counter() - t
            shaTimes.append(elapsedTime)
            diggest = h.digest().hex().upper()
    return shaTimes
 def digest(self):
     return sha3.sha3_384(self._data).digest()
Exemple #7
0
def sha3_384(message):
    return sha3.sha3_384(message).digest()