애들러-32(Adler-32)는 1995년 마크 애들러가 발명한 체크섬 알고리즘으로서[1] 플레처 체크섬의 수정판이다. 동일한 길이의 순환 중복 검사와 비교하면, 속도에 대해 신뢰성을 타협한다. (즉, 속도를 더 우선한다) 애들러-32는 플레처-16보다 더 미더우며, 플레처-32보다는 다소 덜 신뢰할만하다.[2]

역사 편집

애들러-32 체크섬은 널리 쓰이는 zlib 압축 라이브러리의 일부이며, 이 또한 마크 애들러가 개발한 것이다. 롤링 체크섬 버전의 애들러-32는 rsync 유틸리티에 사용된다.

편집

ASCII 문자열 "Wikipedia"의 애들러-32의 합은 다음과 같이 계산된다:

문자 ASCII 코드 A B
(10진으로 표기)
W 87 1 + 87 = 88 0 + 88 = 88
i 105 88 + 105 = 193 88 + 193 = 281
k 107 193 + 107 = 300 281 + 300 = 581
i 105 300 + 105 = 405 581 + 405 = 986
p 112 405 + 112 = 517 986 + 517 = 1503
e 101 517 + 101 = 618 1503 + 618 = 2121
d 100 618 + 100 = 718 2121 + 718 = 2839
i 105 718 + 105 = 823 2839 + 823 = 3662
a 97 823 + 97 = 920 3662 + 920 = 4582
A =  920 =  0x398  (base 16)
B = 4582 = 0x11E6
출력 = 0x11E6 << 16 + 0x398 = 0x11E60398

각주 편집

외부 링크 편집

  • RFC 1950 – specification, contains example C code
  • ZLib – implements the Adler-32 checksum in adler32.c
  • Chrome – uses an SIMD implementation of Adler-32 adler32_simd.c
  • RFC 3309 – information about the short message weakness and related change to SCTP