'portable_hashes'가 켜져 있습니다. 어떤 이유로 든 생성하는 해시가 항상 동일하지는 않지만 'CheckPassword'를 통과 할 때 항상 유효한 것으로 반환됩니다. 나는 또한 'PHP_VERSION'이 해시 생성에 사용된다는 사실을 알아 냈습니다.이 두 가지를 합치면 걱정이됩니다 ... 어떻게 이식성이 있습니까? 서버, 리눅스, 윈도우, 64 비트, 32 비트 등에서 해시 (사용자 데이터베이스에 저장 됨)를 이동하고 유효성을 검사 할 수 있습니까? 암호를 더 이상 유효하지 않게하려면 어떻게해야합니까?여러 서버간에 phpass를 사용하는 것이 얼마나 안전합니까?
내가 물어 보는 이유는 내 사이트에서 몇 가지 사용자가 수천 명이 넘는 여러 사이트에 전원을 공급하는 암호 용 phpass를 사용하고 있기 때문입니다. 이동해야하는 경우가있었습니다 다른 서버에, 그리고 물론 PHP를 업그레이 드하십시오. 나는 또한 lighthttpd 또는 이와 비슷한 것으로 Apache 중 하나 또는 두 개를 전환 할 수 있습니다. 말할 것도없이 나는 편집증에 걸리면 언젠가는 지원 악몽을 꾼다. 그리고 나는 모든 사람에게 새로운 암호를 이메일로 보내기보다는 다른 방법으로 그것을 고칠 수 없을 것이다.
비밀번호가 무효화 될 가능성이 조금이라도있는 경우 - 내 비밀번호 해시 생성기를 만들기 위해 어떤 단계를 밟아야합니까? 나는 이미 16 바이트 무작위 소금 (Per-user)을 사용하고 있으며, 다른 문제는 늘리지 않고있다. 내가 PHP_VERSION
으로 볼 수
좋아, 많이 지워 버렸지 만, 내가 너 한테 뭔가를 돌리도록해라. 지금은 내 개인 테스트 머신 (Win7, WAMP)에서 PHP 5.3.3을 실행하고, 대부분의 서버가 CentOS를 cPanel로 실행 중이다. 그들은 모두 5.2.x이지만, 다시 한번 그들은 CentOS입니다. 이것을 알면 - 휴대용이 아닌 모드에서 단독으로 실행해도 괜찮습니까? 지금 나는 테스트 머신과 서버 사이에서 전체 데이터베이스를왔다 갔다하므로 내 CentOS php 5.2.x 머신에서 일부 해시가 생성되고 다른 것은 Win7 PHP 5.3.3 머신에서 생성됩니다.결국 공유 호스트에서 테스트 할 수도 있습니다. 그 때 무엇입니까? – Jon
@ 존 : 정확히 동일한 설정 (서버의 CentOS 5.2, dev의 Win7). 상수'CRYPT_BLOWFISH == 1' ** 또는 ** PHP 버전이 5.3 이상이면 괜찮습니다. CentOS PHP 5.2.x 서버 ('var_dump (CRYPT_BLOWFISH)')에서'CRYPT_BLOWFISH'를 확인하십시오. 결과가'1'이면 황금입니다. 한 컴퓨터에서 bcrypt를 사용하여 생성 된 해시 또는 다른 해시는 동일합니다 ... 문제는 bcrypt를 사용할 수없는 경우입니다. –
개인적으로 WHM의 EasyApache를 사용하여 PHP 버전을 업그레이드하십시오. –