Excelente explicação, obrigado pelas suas sugestōes. Achei muito interessante o algoritmo de Fesitel Cipher como modelo de estudo.
Eu tinha feito uma tentativa de truncar o valor de um hash a nível de aplicação, algo como:
hashed_token = hashlib.sha256()
short_hashed_token = hashed_token.hexdigest()[:6]
Porém acabei tendo problemas de colisōes, mas não tinha pensado em fazer isso a nivel de banco.
Vou testar fazer dessa forma!