首頁 >後端開發 >php教程 >如何使用 OpenSSL 和自訂 PHP 類別安全地加密和解密檔案?

如何使用 OpenSSL 和自訂 PHP 類別安全地加密和解密檔案?

Mary-Kate Olsen
Mary-Kate Olsen原創
2024-11-21 10:03:10845瀏覽

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

如何使用Mcrypt加密和解密檔案

流行的加密庫Mcrypt已停止使用,不再建議使用。因此,我們將探索使用 OpenSSL 擴充的替代加密技術。

建立自訂加密類別

為了封裝加密過程,我們定義一個自訂類別, AES256Encryption,利用 OpenSSL 的 AES-256演算法。

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