2011-02-18 2 views
1

Perl에서 여러 데이터에 대한 체크섬을 생성해야하는데,이 Digest :: MD5 모듈을 발견했습니다. 그것은 법안에 맞는 것 같아요,하지만 난 여기 누군가가 어떤 조언이나 가능성이 더 적합한 모듈 또는 심지어 더 적합한 다이제스트 알고리즘을 알고 있는지 물어볼 것. 해시되는 것은 약 10 개의 테이블에 해당하는 데이터 (한 번에 하나의 논리적 인 튜플)입니다. 내가 체크섬을 사용하는 것은 이번이 처음이 될 것이므로, 팁, 트릭, 잡았다는 매우 감사 할 것입니다.Perl에서 체크섬을 생성하는 데 필요한 지침이 필요합니다.

편집 : 내가 아는 한, 다이제스트 : MD5에는 아무런 문제가 없지만 해시 알고리즘에 익숙하지 않았습니다. 나는 경험이있는 사람이 올바른 길을 가고 있는지를 말해 줄 수 있었으면 좋겠다. 너무 멀리 가기 전에 약간의 확인을 원했습니다.

+0

'Digest :: MD5'의 문제점이 무엇이라고 생각하는지 분명히 할 수 있을까요? 네가 할 수 없다면 그냥 사용하지 그래? – musiKk

+0

체크섬을 어떻게 사용할 예정입니까? 데이터를 확인하는 것입니까 아니면 보안 요구 사항이 있습니까? –

+0

당신은 옳은 길에 있습니다 –

답변

9

예, Digest::MD5이 트릭을 수행합니다. 그것은 Gisle Aas (LWP의 저자이며 다른 훌륭한 패키지 중 하나임)에 의해 작성되었으며 good reviews & ratings on cpanratings을 가지고 있습니다. 둘 다 좋은 선택이라고 당신을 안심시켜야합니다. 그것은 간단 할 수 있습니다 사용

등 :

my $checksum = Digest::MD5::md5_hex($data); 

당신이 당신의 미래에 다이제스트 알고리즘을 선택, 당신이 고려할 수 있습니다 (예를 들어, SHA-1 대신 사용) 변경 될 수 있습니다 생각한다면 대신을 사용하십시오. Gisle Aas가 작성했으며 다양한 다이제스트 모듈에 쉬운 인터페이스를 제공합니다. 그 방법은 그냥 예에 "MD5"를 변경할 수있는 이점이있다

my $digest = Digest->new('MD5'); 
$digest->add($data);    # to add data from a scalar, or: 
$digest->add_file($filehandle); # to add data read from a filehandle 
my $checksum = $digest->hexdigest; # or just ->digest for binary 

: 예를 들어

"SHA-1". 그러면 끝났어.

다른 해싱 알고리즘을 쉽게 사용할 수있는 기능을 디자인하려는 이유를 추가하겠습니다. 보안 목적으로 사용되는 경우 MD5는 해시 충돌에 취약한 것으로 나타났습니다. 국토 안보부 advises that MD5 "should be considered cryptographically broken and unsuitable for further use". 그러나 데이터 무결성을 일반적으로 확인하기 위해 많은 사람들에게 여전히 받아 들여질 수있는 선택이며 널리 지원됩니다.

SHA-1도 약한 것으로 간주됩니다. SHA-2는 암호화 목적을위한 보안 해싱에 가장 적합한 것으로 간주됩니다.

관련 문제