API Reference

Classes

class ssdeep.Hash[source]

Hashlib like object. It is only supported with ssdeep/libfuzzy >= 2.10.

Raises:
  • InternalError -- If lib returns internal error

  • NotImplementedError -- Required functions are not available

property block_size

The block size used to calculate the hash. This depends on the length of the source string.

Returns:

block size

copy()[source]

Create a copy of this hash object.

Returns:

Return a copy of the hash object.

Return type:

Hash

Raises:

InternalError -- If the lib returns an internal error

digest(elimseq=False, notrunc=False)[source]

Obtain the fuzzy hash.

This operation does not change the state at all. It reports the hash for the concatenation of the data previously fed using update().

Returns:

The fuzzy hash

Return type:

String

Raises:

InternalError -- If lib returns an internal error

property name

The canonical name of this hash

Returns:

ssdeep

update(buf, encoding='utf-8')[source]

Feed the data contained in the given buffer to the state.

Parameters:
  • buf (String|Byte) -- The data to be hashed

  • encoding (String) -- Encoding is used if buf is String

Raises:
  • InternalError -- If lib returns an internal error

  • TypeError -- If buf is not Bytes, String or Unicode

class ssdeep.PseudoHash[source]

Hashlib like object. Use this class only if Hash() isn't supported by your ssdeep/libfuzzy library. This class stores the provided data in memory, so be careful when hashing large files.

property block_size

The block size used to calculate the hash. This depends on the length of the source string.

Returns:

block size

copy()[source]

Create a copy of this hash object.

Returns:

Return a copy of the hash object.

Return type:

PseudoHash

Raises:

InternalError -- If the lib returns an internal error

digest(elimseq=False, notrunc=False)[source]

Obtain the fuzzy hash.

This operation does not change the state at all. It reports the hash for the concatenation of the data previously fed using update().

Returns:

The fuzzy hash

Return type:

String

property name

The canonical name of this hash

Returns:

ssdeep

update(buf, encoding='utf-8')[source]

Feed the data contained in the given buffer to the state.

Parameters:
  • buf (String|Byte) -- The data to be hashed

  • encoding (String) -- Encoding is used if buf is String

Raises:

TypeError -- If buf is not Bytes, String or Unicode

Functions

ssdeep.compare(sig1, sig2)[source]

Computes the match score between two fuzzy hash signatures.

Returns a value from zero to 100 indicating the match score of the two signatures. A match score of zero indicates the signatures did not match.

Parameters:
  • sig1 (Bytes|String) -- First fuzzy hash signature

  • sig2 (Bytes|String) -- Second fuzzy hash signature

Returns:

Match score (0-100)

Return type:

Integer

Raises:
  • InternalError -- If lib returns an internal error

  • TypeError -- If sig is not String, Unicode or Bytes

ssdeep.hash(buf, encoding='utf-8')[source]

Compute the fuzzy hash of a buffer

Parameters:

buf (String|Bytes) -- The data to be fuzzy hashed

Returns:

The fuzzy hash

Return type:

String

Raises:
  • InternalError -- If lib returns an internal error

  • TypeError -- If buf is not String or Bytes

ssdeep.hash_from_file(filename)[source]

Compute the fuzzy hash of a file.

Opens, reads, and hashes the contents of the file 'filename'

Parameters:

filename (String|Bytes) -- The name of the file to be hashed

Returns:

The fuzzy hash of the file

Return type:

String

Raises:
  • IOError -- If Python is unable to read the file

  • InternalError -- If lib returns an internal error

Exceptions

exception ssdeep.BaseError[source]

The base for all other Exceptions

exception ssdeep.InternalError[source]

Raised if lib returns internal error