2014-10-30 2 views
2

인간은 실수를 저지른다. 일부 엔티티를 식별하는 고유 한 생성 ID를 제공해야 할 때. 예 : 주문 A : 있음 ID ABC1234 주문 B : ID가 BCD1235 예 : A123, B123, 1 2 3, "주문 ID B 12/3"의 문자열을 입력 할 수 있습니다. 그런 다음 자동 시스템은 원래 ID를 식별하는 데 어려움이 있습니다. 내 질문은 알려진 알고리즘/기술입니다.사람이 읽을 수있는 내결함성 문자열을 생성하는 데 사용할 수있는 알고리즘은 무엇입니까?

- 고유 한 사람이 읽을 수있는 ID (sha 또는 md5 아님) - 내결함성이 있어야합니다. 문자의 하위 집합에서 할 수있는 것은 원래 ID를 여전히 디코딩합니다. - 대소 문자 구별

qr 코드의 일부가 손상되었을 때 내결함성의 시각적 예가 QR 코드이므로 메시지를 읽을 수 있습니다.

목표는 ex와 같은 도구/알고리즘을 피하는 것입니다. 탄성 검색, levenstein 및 고객이 오타가있는 경우에도 원래 ID를 디코딩 할 기회를 늘리고 다른 "원본 ID"가 제공 될 가능성을 줄입니다.

+0

에는 작업에 대한 약간의 수정이 필요하지만 좋은 시작입니다. http://en.wikipedia.org/wiki/Error_detection_and_correction –

+0

그럼, 질문은 무엇입니까? – matsjoyce

+0

사람이 읽을 수있는 간단한 문자열을 생성하는 알려진 알고리즘이 있습니까? 이중화를 추가하면 오류/오타에 대한 내결함성이 보장됩니다. – wmlynarski

답변

1

오류 수정 이외에도이 질문의 흥미로운 부분은 사람이 읽고 쓰는 데 특별히 설계된 코드가 있는지 여부입니다.

RFC 3548에서 base32 코딩 (1 및 L, 0 및 o)에서 쉽게 혼동되지 않는 문자의 사용을 피하기위한 몇 가지 고려 사항이 있습니다. Human-oriented base-32 encoding에는 이러한 개념에 대한 몇 가지 변형이 있습니다.

오디오의 경우 PGP Word List은 각 바이트에 고유 한 단어를 제공하도록 설계되었습니다. 256 바이트 단어 목록을 두 개 (짝수 바이트에 사용됨), 홀수 바이트 (다른 ​​바이트 또는 스왑 된 바이트를 감지 할 수 있음)로 사용함으로써 오류를 방지하는 데 도움이됩니다.

인간 친화적이고 발음이 가능한 ID에 대해서는 재미 있었지만 발음 할 수있는 암호 (예 : Diceware)는 다소 관련이있었습니다.

또한 Metafilter는 사람이 쉽게 복사 할 수있는 코드에 대해 a discussion을 가지고 있습니다.이 코드는 몇 가지 흥미로운 참조를 제공합니다.