>백엔드 개발 >PHP 튜토리얼 >bcrypt를 사용하여 PHP에서 비밀번호를 안전하게 해시하려면 어떻게 해야 합니까?

bcrypt를 사용하여 PHP에서 비밀번호를 안전하게 해시하려면 어떻게 해야 합니까?

DDD
DDD원래의
2024-12-20 16:23:18409검색

How Can I Securely Hash Passwords in PHP Using bcrypt?

PHP에서 비밀번호 해싱을 위해 bcrypt 사용

bcrypt는 비밀번호 저장에 적극 권장되는 안전한 비밀번호 해싱 기능입니다. 속도가 느리고 많은 수의 라운드를 사용하므로 공격자가 비밀번호를 무차별 대입하기 어렵습니다. 또한, 레인보우 테이블을 방지하기 위해 비밀번호별 솔트를 사용합니다.

PHP의 bcrypt

PHP에는 bcrypt 기능이 내장되어 있지 않습니다. 그러나 사용 가능한 옵션은 여러 가지가 있습니다.

  • PHP 5.5 이상:

    password_hash('password', PASSWORD_DEFAULT); // Default settings
    password_hash('password', PASSWORD_BCRYPT, [
       'cost' => 11, // Set the number of rounds
    ]);
  • PHP 5.3.7~5.5(및 RedHat PHP 5.3.3 ):

    • GitHub에서 호환성 라이브러리를 설치하세요.
    • 사용법은 PHP 5.5와 동일합니다.
  • 이전 PHP 버전 5.3.7:

    • 더 이상 사용되지 않음: crypt() 함수를 사용하지만 이 방법은 옵션만큼 안전하지 않다는 점에 유의하세요.

예:

$bcrypt = new Bcrypt(15);
$hash = $bcrypt->hash('password');
$isGood = $bcrypt->verify('password', $hash);

bcrypt의 장점

  • 하드웨어로 확장 가능(구성 가능한 수 라운드)
  • 느림으로 인해 무차별 대입 공격이 어려워짐
  • 비밀번호별 솔트가 레인보우 테이블을 방지
  • 확인을 위해 솔트, 라운드 및 비밀번호 필요

솔트는 항상 해시된 비밀번호와 함께 저장된다는 점을 기억하세요. 데이터베이스나 기타 공유 리소스에 일반 텍스트 비밀번호를 저장하지 마십시오. bcrypt를 사용하면 사용자의 비밀번호를 효율적이고 안전하게 보호할 수 있습니다.

위 내용은 bcrypt를 사용하여 PHP에서 비밀번호를 안전하게 해시하려면 어떻게 해야 합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.