mirror of https://github.com/CIRCL/AIL-framework
				
				
				
			
		
			
				
	
	
		
			46 lines
		
	
	
		
			1005 B
		
	
	
	
		
			Python
		
	
	
			
		
		
	
	
			46 lines
		
	
	
		
			1005 B
		
	
	
	
		
			Python
		
	
	
#!/usr/bin/python3
 | 
						|
 | 
						|
import hashlib
 | 
						|
import crcmod
 | 
						|
import mmh3
 | 
						|
import ssdeep
 | 
						|
import tlsh
 | 
						|
 | 
						|
 | 
						|
class Hash(object):
 | 
						|
    """docstring for Hash"""
 | 
						|
    def __init__(self, name):
 | 
						|
        self.name = name
 | 
						|
 | 
						|
    def __str__(self):
 | 
						|
        return "{0}".format(self.name)
 | 
						|
 | 
						|
    def _get_hash_name(self):
 | 
						|
        return self.name
 | 
						|
 | 
						|
    def _set_hash_name(self, name):
 | 
						|
        self.p_hash_name = name
 | 
						|
 | 
						|
    def Calculate(self, string):
 | 
						|
        if self.name == "md5":
 | 
						|
            hash = hashlib.md5(string).hexdigest()
 | 
						|
 | 
						|
        elif self.name == "sha1":
 | 
						|
            hash = hashlib.sha1(string).hexdigest()
 | 
						|
 | 
						|
        elif self.name == "crc":
 | 
						|
            crc32 = crcmod.Crc(0x104c11db7, initCrc=0, xorOut=0xFFFFFFFF)
 | 
						|
            crc32.update(string)
 | 
						|
            hash = crc32.hexdigest()
 | 
						|
 | 
						|
        elif self.name == "murmur":
 | 
						|
            hash = mmh3.hash(string)
 | 
						|
 | 
						|
        elif self.name == "ssdeep":
 | 
						|
            hash = ssdeep.hash(string)
 | 
						|
 | 
						|
        elif self.name == "tlsh":
 | 
						|
            hash = tlsh.hash(string)
 | 
						|
 | 
						|
        return hash
 |