Ваш лучший выбор - создать хеш (одностороннюю функцию) для некоторых данных пользователя. Например, чтобы сгенерировать хеш идентификатора строки пользователя, вы можете использовать что-то вроде:
>>> import hashlib
>>> hashlib.sha1('3').hexdigest()
'77de68daecd823babbb58edb1c8e14d7106e83bb'
Однако основание вашей псевдослучайной строки только на идентификаторе строки не очень безопасно, так как пользователь может легко изменить хеш (попробуйте googling 77de68daecd823babbb58edb1c8e14d7106e83bb ) такой короткой строки.
Простое решение здесь состоит в том, чтобы «засолить» хешированную строку, т.е. добавить одну и ту же секретную строку к каждому хэшированному значению. Например:
>>> hashlib.sha1('3' + 'email@of.user' + 'somestringconstant').hexdigest()
'b3ca694a9987f39783a324f00cfe8279601decd3'
Если вы google b3ca694a9987f39783a324f00cfe8279601decd3 , вероятно, единственным результатом будет ссылка на этот ответ :-), которая не является доказательством, но дает хороший намек на то, что этот хэш является совершенно уникальным.