2016-10-12 1 views
0

내가 이해한다면, PHP를 업그레이드하거나 다른 서버로 이전하면 해시 된 비밀번호 (데이터베이스에 저장 됨)가 쓸모 없게됩니다. 소금은 새로운 시스템에서 달라지기 때문입니다.password_hash : 수동으로 소금을 자동 생성하는 이점?

이렇게하면 자동으로 생성되는 소금의 사용 사례가 궁금합니다.

+0

관련 질문 : http://stackoverflow.com/questions/17431031/passwords-hashed-differently-on-different-servers – Dan

+3

물론 이점이 있습니다. 그들은 매우 무작위 적이기 때문에 걱정하지 않아도됩니다. 소금. 그리고 해시를 해결할 수있는'password_verify()'능력을 파괴하거나 업그레이드하는 것에 대해 들어 본 적이 없습니다. 해시가 생성되면 항상 AFAIK를 해결할 수 있습니다. –

+2

*이 기능을 위해 직접 소금을 생성하지 않는 것이 좋습니다. * ([function-password-hash.php] (http://php.net/manual/en/function.password-hash.php))를 지정하지 않으면 자동으로 안전한 소금을 만듭니다. –

답변

6

password_hash() (PHP 7.1. * 기준)은 해싱 암호에 대해서만 bcrypt을 사용합니다. 소금은 해시와 함께 저장되므로 다른 서버로 업그레이드하거나 옮겨도 해시가 쓸모 없게되지는 않습니다.

@ 제이 블란 샤드in his comment이라고 말하면서 신경 쓸 필요가 없으므로 자동 염료가 유리합니다. 모두 편리하고 자동으로 처리됩니다.

소금 자신 (비 ​​무작위 소금, 소금에 대한 잘못된 임의 소스 등)을 생성 할 때 그것은 또한 매우 easy to make a mistake처럼 당신도 , 소금 자신을 만들 수 없습니다한다.

또한 salt 옵션은 password_hashbcrypt 알고리즘에서 PHP 7.0.0부터 사용되지 않으므로 PHP는 항상 자동으로 생성되는 소금을 사용합니다.

4

소금은 각 암호마다 생성되며 password_hash 함수에서 가져온 문자열의 일부로 저장됩니다. 암호를 해시 할 때마다 달라집니다. 우리가 암호로 소금을 사용하는 이유는 암호가 생성 될 때마다 새로운 해시를 얻는 것이므로 두 명의 사용자가 암호 "hunter2"를 사용하면 데이터베이스에 완전히 다른 값으로 저장되어 무지개 표를 쓸모 없게 만듭니다.

새 서버로 이전해도 해시 된 비밀번호는 쓸모가 없습니다.

+1

[2 배트맨이 동일한 암호를 사용하는 경우에도] –

-2

수동 소금을 사용하고 싶다면 그것을 사용할 수 있습니다. 새 서버로 이전하더라도 이전 암호는 쓸모가 없습니다.

트릭은 당신이 여전히 사용하는 새 서버로 이동하는 경우에도 .... 당신은 일반적으로 예를 들어, DB 사용자 이름, DB 암호, 사이트의 정수를 저장할 위치를 수동 소금 문자열을 저장할 수 있도록

입니다 귀하의 수동 소금 문자열 및 이전에 소금에 절인 데이터.

+2

"후추"라고도하는 모든 사용자의 사이트 전체 정적 소금은 소금. 추가 보안 조치로 사용할 수는 있지만 대체 할 수는 없습니다. – ChristianF

관련 문제