온전성 검사 MD5 및

온전성 검사 MD5 및

MD5 체크섬에 체크 숫자가 포함되어 있습니까?

일부 MD5 체크섬을 수동으로 복사해야 하며(다른 방법은 없음) 신용 카드 번호처럼 체크섬이 유효한지 확인할 수 있는 코드가 있는지 궁금합니다.

분명히 말하면, 나는 주어진 합계와 비교할 수 있도록 파일에서 MD5 합계를 생성하는 방법을 묻는 것이 아니라, 이를 확인하는 것이 가능한지(그리고 가능한지 의심스럽습니다) 묻고 있습니다. MD5 합계는 실제 MD5 합계입니다. 실제로 합계를 생성하는 데 사용된 바이트에 대한 참조는 없습니다.

가능한 철자 오류를 찾고 싶습니다.

답변1

실제로는 암호화 해시 설계 표준(MD5의 목표)의 결과입니다.아니요이런 것입니다.

이상적인 128비트 암호화 해시에 파일을 공급하면 다음을 수행할 수 있습니다.아니요예측하다어느해시를 실행하는 것 외에도 128비트 출력(또는 둘 사이의 관계)을 이해하는 것이 가능합니다. 가능하다면 실제로 128비트 해시를 얻을 수 없습니다. 예를 들어, 해시에 패리티 비트(1의 총 개수가 항상 홀수[홀수 패리티] 또는 항상 짝수[짝수 패리티]인 비트)가 있는 경우 실제로는 127비트 해시를 갖게 됩니다.

오타로 인해 실수로 유효한 해시가 생성되지 않도록 하려면 이를 감지할 확률이 50/50보다 높아야 합니다. 따라서 더 많은 비트를 잃게 됩니다.

문제는 128비트 해시를 원한다는 것입니다. 일반적으로 추가 비트가 필요합니다.더블스해시를 공격하는 데 필요한 작업입니다.

중복성이 해시 설계의 일부인 경우 4비트 CRC 등을 사용하여 124비트 해시라고 합니다. 이것이 의도적인 것이 아니라면 실제로는 해시의 부분적인 암호 분석(크래킹)입니다.

실용적인 솔루션

철자 오류를 잡으려면 체크섬이나 검사 숫자를 추가하고 그 옆에 쓰세요. Perl과 같은 것을 사용할 수 있습니다알고리즘::베르호프체크 숫자를 추가하세요.

답변2

기본적으로 체크섬 비트가 없습니다. 철자 오류를 식별하려면 동일한 채널에서 MD5 합계의 체크섬(예: MD5)을 공유하고 확인할 수 있습니다.

답변3

MD5 체크섬은 그 자체로 체크섬입니다. 체크섬에 자체 체크섬/체크 숫자가 있으면 이상할 것입니다.

16바이트 고유 기준을 충족하는 임의의 합계는 MD5 체크섬이 될 수 있습니다. 이 16바이트는 32개의 16진수, 128비트 또는 원하는 숫자로 표시될 수 있습니다.

관련 정보