Limit barcode hash to printable characters.

This is a dirty filthy hack, as the web-input strips non printable chars when they are typed in (but will accept them if they are copy-pasted)
This commit is contained in:
Oliver Walters 2021-01-31 21:45:34 +11:00
parent 27b8928a10
commit 97140b19ba

View File

@ -1,5 +1,6 @@
# -*- coding: utf-8 -*- # -*- coding: utf-8 -*-
import string
import hashlib import hashlib
import logging import logging
@ -16,9 +17,18 @@ logger = logging.getLogger(__name__)
def hash_barcode(barcode_data): def hash_barcode(barcode_data):
""" """
Calculate an MD5 hash of barcode data Calculate an MD5 hash of barcode data.
HACK: Remove any 'non printable' characters from the hash,
as it seems browers will remove special control characters...
TODO: Work out a way around this!
""" """
printable_chars = filter(lambda x: x in string.printable, barcode_data)
barcode_data = ''.join(list(printable_chars))
hash = hashlib.md5(str(barcode_data).encode()) hash = hashlib.md5(str(barcode_data).encode())
return str(hash.hexdigest()) return str(hash.hexdigest())