5

Digamos que tiene un sistema en el que un valor clave bastante largo se puede comunicar con precisión a un usuario en pantalla, por correo electrónico o en papel; pero el usuario necesita poder comunicarle la clave de manera precisa leyéndola por teléfono o leyéndola y escribiéndola en otra interfaz.Codificación que minimiza la lectura incorrecta/mal escrito/mal oído

¿Cuál es una "buena" manera de codificar la clave para hacer que la lectura/audición/mecanografía fácil & precisa?

Esto podría ser un número de factura, una identificación de documento, una identificación de transacción u otro valor abstracto. Digamos, por el bien de esta discusión, el valor de la clave subyacente es un número grande, digamos de 40 dígitos en la base 10.

algunas reflexiones:

Shorter claves son generalmente mejores

  • un 40 el valor 10 de la base de dígitos puede no caber en el espacio dado, y es fácil perderse en el medio de
  • el mismo valor podría representarse en la base 16 en 33-34 dígitos
  • el mismo valor podría estar representados en base 36 en 26 dígitos
  • el mismo valor podría ser representada en base 64 en 22-23 dígitos

caracteres que no pueden ser visualmente confundido entre sí son mejores

  • p.ej una codificación que incluye tanto O (oh) como 0 (cero), o S (ess) y 5 (cinco), podría ser incorrecta
  • Este problema depende de la fuente/cara utilizada para mostrar la clave, que puede ser capaz de controlar en algunos casos (como imprimir en papel) pero no puede controlar en otros (como páginas web y correo electrónico).
  • También depende de si puede controlar el uso exclusivo de mayúsculas y/o minúsculas, p. mayúscula D (dee) puede parecerse a O (oh) pero minúscula d (dee) no; mientras que la minúscula l (ell) parece un 1 (uno) mientras que la mayúscula L (ell) no. (Con excepciones para fuentes/caras especialmente exóticas).

caracteres que no pueden ser verbalmente/auditivamente confundido entre sí son mejores

  • un (ay) 8 (ocho)
  • B (abeja) C (cee) D (dee) E (ee) g (gee) p (pip) t (tee) v (vee) z (zee) 3 (tres)
  • Este problema depende de la calidad de audio del canal de extremo a extremo - mayor desafío si la base de usuarios prevista podría tener un impedimento de voz, o puede tener que hablar a través de una máscara de gas, o el canal de comunicación podría incluir radios CB o sistemas telefónicos VOIP picados.

Agregar un dígito de control o dos detectaría errores pero no ayudaría a resolver los errores.

Un diálogo de tipo alfa - bravo - charlie - delta puede ayudar con los errores de audición, pero no con los errores de lectura.

opciones posibles de codificación:

  • Base 64 - compacto, pero demasiados difíciles de verbalizar caracteres (subrayado, guiones etc.)
  • Base 34 - 0-9 y AZ pero con O (oh) y I (aye) omitido como el más fácil de confundir con los dígitos
  • Base 32 - igual que la base 34 pero omita el 0 (cero) y 1 (uno) también

I s hay una codificación generalmente reconocida que es una solución razonable para este escenario?

+1

Utilice ICAO (http://en.wikipedia.org/wiki/NATO_phonetic_alphabet)? – ninjalj

Respuesta

Cuestiones relacionadas