Merge pull request #1266 from SchrodingersGat/barcode-data-fix

Limit barcode hash to printable characters.
This commit is contained in:
Oliver 2021-01-31 22:29:19 +11:00 committed by GitHub
commit 3449848682
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

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())