2009-07-13 3 views
3

중복 된 콘텐츠를 방지하고 싶습니다. 나는 내용의 사본을 지키고 싶지 않아, 그래서 나는 단지 MD5 서명을 유지하기로 결정했다.md5를 사용하여 중복되는 콘텐츠를 방지 할 수 있습니까?

나는 md5 충돌이 일어난다는 것을 읽었는데, 다른 내용이 동일한 md5 서명에서 줄 수있다.

md5로 충분하다고 생각하십니까?

md5와 sh1을 함께 사용해야합니까?

+0

콘텐츠의 양은 어느 정도입니까? – ceejayoz

+0

SHA2 다이제스트의 크기가 우연한 충돌을 만들기에 충분할 정도로 충분히 크기 때문에 문제가되지 않습니다. –

+0

명백한 후속 질문 : 우리는 의도적 인 충돌 또는 우발적 인 충돌과 관련이 있습니까? –

답변

5

사람들은 고의적으로 고의적 인 상황에서 MD5 충돌을 일으킬 수 있었지만, (악의적 인 사용자가없는 경우) 중복 된 내용을 방지하기 위해 적절하다고 생각했습니다.

그렇다면 SHA-1 (또는 SHA-2)을 사용할 수 있다면, 충돌로는 부분적으로는 측정 할 수 있지만 안전 할 것입니다.

+0

악의적 인 사용자가있는 상황에서도 괜찮습니까? 정당한 내용이 먼저 게시됩니다 -> 악의적 인 사용자가 의도적 인 충돌을 생성합니다 -> 악의적 인 사용자가 내용을 게시 할 수있는 기능이 거부되었습니다 –

+0

(samoz의 대답에 대한 설명은 http://stackoverflow.com/questions/1121701/can-i-preventing-duplicate- content-using-md5 # 1121713은 Spencer의 의견을 다룹니다. – RichieHindle

+0

MD5는 낮은 CPU 비용으로 인해 이러한 상황에 적절합니다. 충돌로 인한 가양성에 대해 여전히 걱정이된다면 MD5를 먼저 실행 한 다음 충돌이 발생하면 SHA-2를 사용하여 충돌이 아닌 실제 충돌 (거짓 긍정)을 확인하십시오. 그것이 우리가 한 일입니다. 필요할 때만 SHA2의 99.99999999999 %의 높은 정확도와 MD5의 낮은 CPU 비용을 얻습니다. – srt8driver

3

MD5가 잘되어야합니다. 충돌은 매우 드뭅니다.하지만 실제로 걱정이된다면 sha-1도 사용할 수 있습니다.

시그니처가 실제로 그렇게 크지는 않겠지 만 여분의 처리주기와 디스크 공간이 있다면 둘 다를 수행 할 수 있습니다. 그러나 공간이나 속도가 제한적이라면, 나는 하나만 가지고 가겠다.

+0

의도적으로 충돌하기 쉽기 때문에 MD5가 좋지 않습니다. –

+0

그래서? 정당한 내용이 먼저 게시됩니다 -> 악의적 인 사용자가 의도적으로 충돌을 만듭니다 -> 악의적 인 사용자는 내용을 게시 할 수 없습니다. –

+0

두 번째로 게시 된 합법적 인 콘텐츠로 다시 시도하십시오. –

0

MD5가 손상되었으며 SHA1이 이에 가깝습니다. SHA2를 사용하십시오.

영업에서 업데이트를 기반으로

편집, 의도적 인 충돌이 여기에 심각한 우려 것을하지 않는 것 같습니다. 비 의도적 인 경우, 적어도 64 비트 출력을 가진 괜찮은 해쉬는 괜찮을 것이다.

나는 일반적으로 MD5와 심지어 SHA1을 피할 것이지만, 그것에 대해 독단적 인 이유는 없습니다. 도구가 여기에 적합하면 꼭 사용하십시오.

+1

SHA-1이 MD5처럼 손상되었다는 증거에 연결할 수 있습니까? –

+2

이 경우 SHA1은 과잉이라고 생각합니다. 그는 암호와 같은 것을 확보하려고 시도하지 않고 중복을 방지합니다. MD5는 이러한 목적에 적합합니다. –

+0

그것은 그것에 가깝지만 아직 깨지지 않았습니다. http://en.wikipedia.org/wiki/SHA_hash_functions#SHA-1 –

0

타임 스탬프 + md5를 함께 사용하면 충분히 안전합니다.

+3

정말 콘텐츠에 따라 다릅니다. 예 : 이미지에 타임 스탬프를 사용하고 싶지는 않습니다. 왜냐하면 두 이미지는 바이트 중복을 위해 바이트가 될 수 있지만 생성/수정 된 타임 스탬프가 다릅니다. – pdwetz

1

md5로 충분해야합니다. 예, 충돌이있을 수 있지만 그 일이 일어날 가능성은 너무 작아서 문자 그대로 수십억 개의 콘텐츠를 추적하지 않는 한 걱정하지 않을 것입니다.

1

실수로 충돌을 두려워하는 경우 MD5 및 SHA1 해시를 수행하고 비교해보십시오. 둘 모두 일치하면 동일한 내용입니다. 둘 중 하나가 다른 경우 다른 콘텐츠입니다.

2

해시 충돌이있는 경우 단순히 콘텐츠 바이트를 바이트로 비교하지 않는 이유는 무엇입니까? 해시 충돌은 매우 드물기 때문에 바이트 확인을 위해 바이트를 처리해야하는 경우는 매우 드뭅니다. 그런 식으로 항목이 실제로 복제 된 경우에만 중복이 검색됩니다.

1

결합 알고리즘은 혼란을 줄뿐 아니라 해싱 알고리즘의 보안을 향상시키지 않습니다.

MD5도 어쨌든 사용할 수 없습니다. IMHO. 단조 MD5 해시는 MD5 충돌을 발생시키는 콘텐츠를 위조 할 수 있다는 것을 입증 한 연구원에 의해 입증되었으므로 소유하지 않은 도메인 이름에 대해 RapidSSL에서 인증서를 구매하는 위조 된 CSR을 생성 할 수있는 기회를 열었습니다. Security Now! episode 179 explains the process.

나에게있어 SHA 기반 해시는 강력하고 대부분의 개발 플랫폼이이를 지원하므로 선택이 쉽습니다. 나머지 결정 요소는 블록 크기입니다.

+1

나는 SHA-1이 약점의 징후를 보였기 때문에 SHA-2가 일반적으로 추천된다. –

관련 문제