> 백엔드 개발 > PHP 튜토리얼 > 비밀번호 암호화 및 복호화를 위해 더 이상 사용되지 않는 mcrypt 확장의 보안 대안은 무엇입니까?

비밀번호 암호화 및 복호화를 위해 더 이상 사용되지 않는 mcrypt 확장의 보안 대안은 무엇입니까?

Patricia Arquette
풀어 주다: 2024-12-11 12:40:18
원래의
224명이 탐색했습니다.

What are the Secure Alternatives to the Deprecated mcrypt Extension for Password Encryption and Decryption?

비밀번호 암호화를 위해 더 이상 사용되지 않는 mcrypt 확장 프로그램의 대안

이전에 비밀번호 암호화에 사용되었던 mcrypt 확장 프로그램은 더 이상 사용되지 않으며 제거될 예정입니다. 완전히 PHP 7.2에서. 이는 안전한 비밀번호 암호화를 위한 적절한 대안을 찾는 데 대한 우려를 불러일으킵니다.

권장 접근 방식: 비밀번호 해싱

모범 사례로 비밀번호를 해시하는 것보다 비밀번호를 해시하는 것이 좋습니다. 암호화하십시오. 해싱은 비밀번호를 되돌릴 수 없는 값으로 변환하므로 공격자가 데이터베이스나 파일에 액세스하더라도 원래 비밀번호를 복구하는 것이 불가능합니다.

대체 암호화 방법

그러나 비밀번호 암호화가 필요하고 이를 해독하는 기능이 필요한 경우 다음 옵션을 사용하세요. 권장 사항:

  • Libsodium: 안전한 암호화 및 암호 해독을 제공하는 PHP 확장입니다.
  • defuse/php-encryption: 직선 PHP 코드 안전한 암호화 및 복호화를 제공하는 라이브러리 기능.
  • OpenSSL: 서버에 아직 설치되지 않은 경우 PHP로 컴파일할 수 있는 널리 사용 가능한 암호화 라이브러리입니다.

코드 예

이러한 대안 중 하나를 사용하려면 원래 mcrypt와 유사한 구조를 따를 수 있습니다. 코드:

// Generate a secure random initialization vector
$iv = random_bytes(16);

// Encrypt the password using AES-256 in CBC mode
// Note: Replace key with a securely generated encryption key
$encrypted = openssl_encrypt($string, 'aes-256-cbc', $key, OPENSSL_RAW_DATA, $iv);

// Store the encrypted password and initialization vector for later decryption
로그인 후 복사

암호화

동일한 라이브러리와 키를 사용하여 암호해독을 수행할 수 있습니다.

// Decrypt the encrypted password using AES-256 in CBC mode
$decrypted = openssl_decrypt($encrypted, 'aes-256-cbc', $key, OPENSSL_RAW_DATA, $iv);
로그인 후 복사

위 내용은 비밀번호 암호화 및 복호화를 위해 더 이상 사용되지 않는 mcrypt 확장의 보안 대안은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿