>  기사  >  백엔드 개발  >  OpenSSL 및 사용자 정의 PHP 클래스를 사용하여 파일을 안전하게 암호화하고 해독하는 방법은 무엇입니까?

OpenSSL 및 사용자 정의 PHP 클래스를 사용하여 파일을 안전하게 암호화하고 해독하는 방법은 무엇입니까?

Mary-Kate Olsen
Mary-Kate Olsen원래의
2024-11-21 10:03:10794검색

How to Securely Encrypt and Decrypt Files Using OpenSSL and a Custom PHP Class?

Mcrypt를 사용하여 파일을 암호화 및 복호화하는 방법

인기 암호화 라이브러리인 Mcrypt는 단종되었으며 더 이상 사용이 권장되지 않습니다. 이러한 이유로 우리는 OpenSSL 확장을 사용하는 대체 암호화 기술을 탐색할 것입니다.

사용자 정의 암호화 클래스 생성

암호화 프로세스를 캡슐화하기 위해 사용자 정의 클래스를 정의합니다. , OpenSSL의 AES-256을 활용하는 AES256Encryption 알고리즘.

class AES256Encryption
{
    const BLOCK_SIZE = 8;
    const IV_LENGTH = 16;
    const CIPHER = 'AES256';

    //... Encryption and Decryption Methods ...
}

사용

$text = 'Plain text to be encrypted';
$key = 'Encryption key';
$iv = AES256Encryption::generateIv();  // Generates a random initialization vector (IV)
$encryptedText = AES256Encryption::encrypt($text, $key, $iv);  // Encrypts the text
$decryptedText = AES256Encryption::decrypt($encryptedText, $key, $iv);  // Decrypts the encrypted text

샘플 출력

Original Text: Plain text to be encrypted
Encrypted: Encrypted ciphertext
Decrypted: Plain text to be encrypted

기타 고려 사항

  • IV 세대: AES256Encryption::generateIv()를 사용하여 초기화 벡터(IV)의 안전한 생성을 보장합니다.
  • 패딩 : 입력 텍스트는 적절한 블록 크기를 보장하기 위해 블록 크기의 배수로 채워집니다. 암호화.
  • Base64 인코딩: 암호화 및 복호화된 데이터는 편의를 위해 base64로 인코딩됩니다.
  • 예외: 잠재적인 보고를 위해 오류 처리가 포함됩니다. 암호화 또는 암호 해독 중에 문제가 발생합니다.

OpenSSL을 사용하는 이 업데이트된 접근 방식은 최신 암호화 표준을 사용하여 파일과 데이터를 암호화하고 해독하는 안전하고 안정적인 방법입니다.

위 내용은 OpenSSL 및 사용자 정의 PHP 클래스를 사용하여 파일을 안전하게 암호화하고 해독하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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