browserforge icon indicating copy to clipboard operation
browserforge copied to clipboard

Add Fingerprint Deserialization

Open techinz opened this issue 7 months ago • 0 comments

Added loads() method to complement existing dumps()

I ran into a use case where I needed to deserialize fingerprints between sessions to keep them consistent and noticed there wasn't a loads() method to match dumps(). Not sure if that was intentional or just missed, but it feels like a natural pair.

This PR adds a loads() class method that reconstructs a Fingerprint object from JSON. A few people in the Issues tab have also asked how to handle this - hopefully this helps them too.

Code example:

from browserforge.fingerprints import Fingerprint, FingerprintGenerator

# 1. Generate and save the fingerprint

fingerprint_generator = FingerprintGenerator(browser='firefox')

# generate a fingerprint
original_fingerprint = fingerprint_generator.generate()

# dump it to a json string
fingerprint_dump = original_fingerprint.dumps()

# save the fingerprint dump to a file
with open('fingerprint_dump.json', 'w') as f:
    f.write(fingerprint_dump)

#
# ... do what you need with the fingerprint ...
#


# 2. Load the same fingerprint from the file

# for example, next run:

# load the fingerprint dump from the file
with open('fingerprint_dump.json', 'r') as f:
    fingerprint_data = f.read()

# load the fingerprint from the json string
loaded_fingerprint = Fingerprint.loads(fingerprint_data)

print('Fingeprints are equal:', original_fingerprint == loaded_fingerprint)

techinz avatar Jun 26 '25 21:06 techinz