답변:
MD5는 임의 길이의 메시지를 128 비트의 고정 길이 출력으로 처리하며 일반적으로 32 개의 16 진수 시퀀스로 표시됩니다.
128 bits
= 16 bytes
=32 hex digits
추가 길이
b의 64 비트 표현 (패딩 비트가 추가되기 전의 메시지 길이)이 이전 단계의 결과에 추가됩니다. b가 2 ^ 64보다 큰 경우는 드물지만 b의 하위 64 비트 만 사용됩니다.
MD5("how many characters exactly?");
길이는 얼마든지 가능하지만 문자열 입력이 너무 길면 컴퓨터에 메모리 문제가있을 수 있습니다. 출력은 항상 32 자입니다.
block
한 번에 바이트의 입력이 가능합니다.
MD5 대신 SHA-1 을 사용할 수 있습니다. MD5가 깨진 것으로 간주됩니다로서.
이 Wikipedia 기사 에서 MD5 취약성에 대한 자세한 내용을 볼 수 있습니다 .
내가 아는 md5의 입력에는 제한이 없습니다. 일부 구현에서는 md5 함수에 전달하기 전에 전체 입력을 메모리에로드해야합니다 (즉, 구현은 스트림이 아니라 메모리 블록에 대해 작동 함). 그러나 이는 알고리즘 자체의 제한 사항이 아닙니다. 출력은 항상 128 비트입니다. md5는 암호화 알고리즘이 아니라 암호화 해시입니다. 즉, 데이터 청크의 무결성을 확인하는 데 사용할 수 있지만 해싱을 되돌릴 수는 없습니다. 또한 md5는 손상된 것으로 간주되므로 보안 관련 용도로 사용해서는 안됩니다 (다운로드 한 파일의 무결성을 확인하는 것이 좋습니다).