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!