""" Functions to normalize various inputs """ import hashlib def generate_system_username(username): """ Generate a posix username from given username. If username < 26 char, we just return it. Else, we hash the username, truncate username at 26 char, append a '-' and first add 5char of hash. This makes sure our usernames are always under 32char. """ if len(username) < 26: return username userhash = hashlib.sha256(username.encode('utf-8')).hexdigest() return '{username_trunc}-{hash}'.format( username_trunc=username[:26], hash=userhash[:5] )