2014-12-03 7 views
-1

인간 친화적 인 "체크섬"값을 위해 0부터 99까지만 값을 생성합니다.16 비트 미만의 값으로 생성 된 CRC 알고리즘

입력은 ASCII 문자 (주로 -z 및 0-9)의 문자열입니다.

나는 이것을 위해 CRC 알고리즘을 사용해야한다고 생각하지만 균형 잡힌 체크섬 결과로 어떻게 최상의 결과를 얻을 수 있는지 궁금합니다.

제가 생각할 수있는 가장 저렴한 기술은 CRC-16 또는 CRC-32를 계산 한 다음 100을 기준으로 결과를 얻는 것입니다. 그러나 좋은 결과를 내지 못합니다. 그렇습니까?

N 개의 다른 값 집합 (예 : az와 0-9 만 사용하는 경우 N = 36) 중에서 값 문자열을 체크섬하는 데 이상적인 알고리즘 (CRC와 비슷한 알고리즘)은 무엇이 될까요? 체크섬 범위는 0에서 M-1입니까?

작은 문자열을 처리 할 때 빠를 필요는 없습니다.

답변

1

임의의 수의 출력 비트를 사용하여 순환 중복 검사를 수행 할 수 있으므로 CRC-8과 같은 것을 사용하여 0에서 255까지의 값 (두 개의 16 진수로 나타낼 수 있음)을 얻을 수 있습니다. CRC에 대한 자세한 내용은 wikipedia link을 참조하십시오.

좋은 결과를주지 못하는 CRC-32 모듈로 100을 얻는 것은 "좋은"것으로 간주됩니다. 단 100 개의 해시 값에 대해 충돌은 빈번하게 발생하도록 바인딩되므로 충돌 위험에 대해 해시 길이를 측정해야합니다.