Codifica che riduce al minimo il maltratto / misurone / errore di errore?
-
10-12-2019 - |
Domanda
Diciamo che hai un sistema in cui un valore chiave abbastanza lungo può essere comunicato accuratamente a un utente sullo schermo, via e-mail o tramite carta; Ma l'utente deve essere in grado di comunicare con accuratamente la chiave leggermente leggendola al telefono, o leggendola e digitandola in qualche altra interfaccia.
Potrebbe essere un numero di fattura, un documento ID, un ID di transazione o un altro valore astratto. Diciamo per il bene di questa discussione il valore della chiave sottostante è un grande numero, diciamo 40 cifre in base 10.
Alcuni pensieri:
Keys più brevi sono generalmente migliori
- .
- Una base di 40 cifre 10 il valore potrebbe non adattarsi allo spazio dato, ed è facile da perdere nel mezzo di
- Lo stesso valore potrebbe essere rappresentato in base 16 in 33-34 cifre
- Lo stesso valore potrebbe essere rappresentato in base 36 in 26 cifre
- Lo stesso valore potrebbe essere rappresentato in base 64 in 22-23 cifre
Caratteri che non possono essere confusi visivamente con l'altro sono meglio
- .
- ad esempio. Una codifica che include sia o (oh) che 0 (zero), o s (ESS) e 5 (cinque), potrebbe essere cattiva
- Questo problema dipende dal carattere / faccia utilizzato per visualizzare il tasto, che potresti essere in grado di controllare in alcuni casi (come la stampa su carta) ma non può controllare in altri (come pagine Web e e-mail). .
- dipende anche dal fatto che sia possibile controllare l'uso esclusivo del caso superiore e / o inferiore - E.G. capitale d (dee) può sembrare o (oh) ma la minuscola D (dee) non lo farebbe; Mentre le minuscole L (Ell) sembra un 1 (uno) mentre il capitale L (Ell) non lo farebbe. (Con eccezioni per font / volti particolarmente esotici).
Caratteri che non possono essere verbalmente / Auricamente confusi con l'altro sono meglio
- .
- a (Ay) 8 (otto)
- b (bee) c (cee) d (dee) e (ee) g (gee) p (pee) t (tee) v (vee) z (zee) 3 (tre)
- Questo problema dipende dalla qualità audio del canale end-to-end - Bigger Challenge se la base di utenti previste potrebbe avere un impedimento vocale, o potrebbe dover parlare attraverso una maschera antigas o il canale di comunicazione potrebbe includere CB Sistemi telefonici VoIP di radio o choppy.
Aggiunta di una cifra di controllo o due rilevare gli errori ma non aiuta a risolvere gli errori.
An Alpha - Bravo - Charlie - Dialog tipo delta può aiutare con gli errori dell'udito, ma non leggere errori.
possibili scelte di codifica:
- .
- Base 64 - Compatto, ma troppi caratteri hard-to-verbalizzabili (sottolineatura, trattino ecc.)
- Base 34 - 0-9 e A-Z ma con o (oh) e io (aye) lasciato fuori come il più facile da confondere con le cifre
- Base 32 - come base 34 ma lasciare lo 0 (zero) e 1 (uno) pure
C'è una codifica generalmente riconosciuta che è una soluzione ragionevole per questo scenario?
Soluzione
Quando l'ho sentito per primo, mi è piaciuto l'articolo una proposta per i proquisiti: identificatori che sono leggibili, faillonabili e pronunciabili.Codifica i dati come una sequenza di consonanti e vocali.È legato alla lingua inglese però.(Perché in tedesco, f
e v
sono uguali, quindi non dovrebbero essere usati entrambi.) Ma mi piace l'idea generale.