2011-07-03 3 views
2

가능한 중복 :
Is “double hashing” a password less secure than just hashing it once?비밀번호를 반복해서 해시 할 가치가 있습니까?

내가 그 일을 무엇을 얻을 수 있습니까? 해시가 느려집니다 ... 해시에서 암호를 자동으로 찾아 낼 가능성이 자동으로 줄어 듭니까?

$password = '123456'; 

$iterations = 8; 

$is_first = true; 
for ($i = 0; $i < $iterations; ++$i) { 
    if ($is_first === true) { 

     $hashed_password = hash('sha256', $password); 

    } else { 

     $hashed_password = hash('sha256', $hashed_password); 

    } 

    $is_first = false; 
} 

대답이 '예'인 경우 선택 사항은 몇 개입니까?

다른 당신이 (소금 땅콩 제외) 추천 할 것입니다 암호 보안을 개선 옵션? 해시 둔화

+1

처음에는'$ hashed_password = $ password'를 설정하고 큰 if/else 블록을 생략하면 코드를 간단하게 만들 수 있습니다 ... – Amber

+1

"비밀번호 보안을 개선하기위한 다른 옵션" 너무 멀어서 SO 질문으로 대답 할 수 없다. –

+0

@Amber : 어쨌든 당신은 무언가를 복제하고 있습니다. 나는 모든 논리가 어휘 적으로 근처에 있기 때문에이 방법을 선호한다. –

답변

1

좋은입니다.

적 암호 해시를 얻을 경우

, 당신은 그 각각의 해시를 시도하는 데 시간이 오래 걸릴 강제로하려고합니다.

+1

공격자가 해시를 가지고 있지 않은 시나리오에서도 마찬가지입니다. 무단으로 보안 메커니즘을 강요합니다. –

+1

@Oli : 당신은 더 나은 방어 장치가 있어야합니다. – SLaks

+0

필자는 항상 여러 가지 해싱 기술을 권장했습니다. 예를 들어'hash ('md5', $ salt. $ password) .hash ('sha256', $ salt. $ password)'와 같이 입력하십시오. 일반적으로 해시와 일치하는 중복 된 비밀번호를 찾는 것이 더 어렵습니다. 또한 사용자가 암호 대신 "암호 구문"을 사용하도록합니다. "1 월 1 일에 내 생일"은 무력에 대한 훨씬 더 어려운 암호이며 사용자가 훨씬 쉽게 기억할 수 있습니다. – Rahly

관련 문제