diff --git a/avatar/conf.py b/avatar/conf.py index 6c5d5c2..4e81b63 100644 --- a/avatar/conf.py +++ b/avatar/conf.py @@ -27,6 +27,7 @@ class AvatarConf(AppConf): FACEBOOK_BACKUP = False FACEBOOK_GET_ID = None DISABLE_CACHE = False + RANDOMIZE_HASHES = False def configure_auto_generate_avatar_sizes(self, value): return value or getattr(settings, 'AVATAR_AUTO_GENERATE_SIZES', diff --git a/avatar/models.py b/avatar/models.py index bca0918..bc29b83 100644 --- a/avatar/models.py +++ b/avatar/models.py @@ -1,3 +1,4 @@ +import binascii import datetime import os import hashlib @@ -47,7 +48,10 @@ def avatar_file_path(instance=None, filename=None, size=None, ext=None): # File doesn't exist yet if settings.AVATAR_HASH_FILENAMES: (root, ext) = os.path.splitext(filename) - filename = hashlib.md5(force_bytes(filename)).hexdigest() + if settings.AVATAR_RANDOMIZE_HASHES: + filename = binascii.hexlify(os.urandom(16)).decode('ascii') + else: + filename = hashlib.md5(force_bytes(filename)).hexdigest() filename = filename + ext if size: tmppath.extend(['resized', str(size)])