Qual è l'algoritmo di hash a senso unico più corto?

2

Ho un ID di 24 caratteri che è garantito essere univoco. Mi piacerebbe accorciare questo a caratteri 7-10 (o anche più brevi). Se generassi un id breve casualmente, dovrei controllare ogni volta se questo shortid è disponibile. Esiste un algoritmo di hash unidirezionale che può restituire l'hash di 7-10 caratteri passando dall'identificatore di 24 caratteri.

Esistono altri modi per garantire che l'ID breve generato sia unico senza controllo?

    
posta ed1t 17.07.2014 - 16:27
fonte

2 risposte

2

non puoi garantire che un ID abbreviato sia unico, perché ci sono molte meno stringhe di 10 caratteri rispetto alle stringhe di 24 caratteri. Prima o poi, i valori saranno essere riutilizzati.

A seconda di come vengono generati i tuoi ID, ci sono diverse cose che potresti fare nella pratica. Se ottieni numeri consecutivi, gli ultimi 10 caratteri funzioneranno per un po ', ma poi riprenderanno dopo i valori X ^ 10. Se l'ID è di per sé totalmente casuale, puoi prendere qualsiasi 10 delle sue cifre per ottenere un altro valore probabilmente univoco, ma prima o poi porterà a collisioni in modo imprevedibile. Ma il problema posto non è risolvibile.

    
risposta data 17.07.2014 - 16:31
fonte
0

Se altre condizioni sono favorevoli, assegna i tuoi ID brevi in modo seriale. Prima corda che ha bisogno di un ID ottiene 1, il secondo ottiene 2 ecc. Garantito per essere unico e senza controllo è necessario.

    
risposta data 17.07.2014 - 20:09
fonte

Leggi altre domande sui tag