Ideias para criar um pequeno "hash" (<10 dígitos), não (muito) seguro

Estou trabalhando em um sistema de venda de ingressos on-line, onde os usuários poderão imprimir seus ingressos automaticamente e aparecer no evento em que serão digitalizados (código de barras) e, idealmente, a pessoa entrará. Meu problema é como criar um "código de ticket" que atenda aos seguintes requisitos:

cada "código de ticket" precisa ser suficientemente diferente um do outro (ou seja, não numerado sequencialmente)ideally, o ticket será verificado em um banco de dados central para evitar a reutilização, mas PRECISA poder trabalhar off-line também; nesse caso, o sistema precisa verificar um código de ticket "válido" e que não foi usado noest portão o "código do ticket" deve ser pequeno o suficiente para facilitar a digitação, se necessário o portador do bilhete precisaria apenas do bilhete para entrar (ou seja, sem verificação de identidade)

O intervalo de dados é muito pequeno, haverá apenas 20 eventos em 4 dias, com cerca de 5.000 ingressos por evento (cerca de 100.000 códigos de ingressos diferentes)

Agora eu tenho vários campos que não são impressos no ticket e não são conhecidos pelo usuário que eu posso usar para codificar parte do "código do ticket", então eu poderia usar EventId, OrderId, EventDate e um pouco de sal para criar um pequeno "hash" para parte do código (ideias?), mas ainda estou preso ao ID do ticket que é seqüencial ou um GUID (seria muito longo)

Alguma idéia ou sugestão de como fazer isso?

questionAnswers(14)

yourAnswerToTheQuestion