2010-01-03 1 views

답변

1

SHA1은 MD5보다 체크섬이 약간 낫습니다. 힘내 사용하는 것입니다.

1

MD5는이 시점에서 알려진 취약점이 있지만 응용 프로그램에서 문제가되지 않을 수 있습니다. 더미를 구별하기에 여전히 합리적입니다. 무언가가 일치하지 않으면 알고리즘이 결정적이기 때문에 아직 본 적이 없다는 것을 알 수 있습니다. 어떤 것이 일치하는 것으로 돌아 오면 실제로 마치 복제본처럼 행동하기 전에 표면 상 일치하는 얼룩과 비교해야합니다. MD5는 상대적으로 빠르지 만 해시 충돌에 대한 전체 텍스트 비교가 불가능한 경우 SHA-256과 같은 더 강력한 해시를 사용해야합니다.

6

이 특별한 경우 알고리즘 선택은 그다지 중요하지 않습니다. MD5에 비해 SHA1을 사용하는 주된 이유는 모두 암호로 안전한 서명을 만드는 것과 관련이 있습니다.

잘못된 작업을 생성하기 위해 파일을 악의적으로 제작하는 사람들에 대해 걱정할 필요가 없으므로 MD5는이 작업에 완벽하게 수용되어야합니다.

0

MD5에는 몇 가지 충돌이 있지만 필자는 항상 파일 용으로 사용해 왔지만 제대로 작동합니다.

1

설명 목적을 위해 실제로 바람직한 해결책은 없지만 두 해시 함수 모두 문제를 해결할 것입니다. 어쨌든 MD5는 대개 SHA1보다 약간 빠릅니다. 파이썬에서

예 :

#!/usr/bin/env python 

import hashlib, cProfile 

def repeat(f, loops=10000000): 
    def wrapper(): 
     for i in range(loops): f() 
    return wrapper 

@repeat 
def test_md5(): 
    md5 = hashlib.md5(); md5.update("hello"); md5.hexdigest() 

@repeat 
def test_sha1(): 
    sha = hashlib.sha1(); sha.update("hello"); sha.hexdigest() 

cProfile.run('test_md5()') 
cProfile.run('test_sha1()') 

# 
#   40000004 function calls in 59.841 CPU seconds 
# 
# .... 
# 
#   40000004 function calls in 65.346 CPU seconds 
# 
# .... 
1

가 무슨 소리하는 암호화 해시로 (하지만 동일하지)에 관련되는 검사입니다.

그렇습니다. 동일한 체크섬으로 두 개의 다른 파일을 의도적으로 만드는 악의적 인 사용자가 아니라면 MD5와 CRC도 모두 체크섬으로 잘 작동합니다. 인 경우 SHA1을 사용하거나 더 좋게는 cryptographically unbroken 해시를 사용하십시오.

2

퍼포먼스에 관심이 있다면 먼저 일치하는 파일 크기를 확인한 다음 빠른 해시 기능 (CRC32 또는 MD5는 SHA1보다 빠름)을 사용하는 것이 좋을 것 같고 가능한 중복 파일의 경우 시도하는 것이 좋습니다. MD5, SHA1 또는 SHA256 (작업의 중요도에 따라 다름).

0

우리는 내 작업에서 MD5를 사용하고 있습니다. 훌륭하게 작동합니다. 고객 당 중복 업로드 만 감지하면 birthday problem에 대한 노출은 줄어들지 만, 고객 당이 아닌 모든 업로드에서 중복을 탐지해야한다면 md5가 여전히 충분할 것입니다. 당신이 인터넷을 믿을 수 있다면, 샘플 및 B의 해시 크기 N 주어진 충돌의 확률 P에 의해 묶여있다 : 나는 N이 계산을 실행

p <= n (n - 1)/(2 * 2^b) 

몇 년 전 = 10^9와 b = 128이고 p < = 1.469E-21로 나타났습니다. 10^9 파일은 32 년 동안 초당 하나입니다. 따라서 우리는 충돌이 발생한 경우 파일을 비교하지 않습니다.md5에서 업로드가 동일하다고 말하면 동일합니다.

관련 문제