亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

如何結合fopen實現PHP文件的加密解密

PHP
小樊
83
2024-09-04 23:43:10
欄目: 編程語言

要在 PHP 中使用 fopen 函數實現文件的加密和解密,你可以使用對稱加密算法,例如 AES

首先,確保已安裝了 OpenSSL 擴展。大多數環境中默認已經安裝。

  1. 加密文件:
<?php
function encryptFile($inputFilename, $outputFilename, $key) {
    $cipher = "AES-256-CBC";
    $ivlen = openssl_cipher_iv_length($cipher);
    $iv = openssl_random_pseudo_bytes($ivlen);

    $inputFile = fopen($inputFilename, 'rb');
    $outputFile = fopen($outputFilename, 'wb');

    // 將初始化向量寫入加密文件
    fwrite($outputFile, $iv);

    while (!feof($inputFile)) {
        $plaintext = fread($inputFile, 16 * 1024);
        $ciphertext = openssl_encrypt($plaintext, $cipher, $key, OPENSSL_RAW_DATA, $iv);
        fwrite($outputFile, $ciphertext);
    }

    fclose($inputFile);
    fclose($outputFile);
}

$inputFilename = 'plaintext.txt';
$outputFilename = 'encrypted.txt';
$key = 'your-32-character-key';

encryptFile($inputFilename, $outputFilename, $key);
?>
  1. 解密文件:
<?php
function decryptFile($inputFilename, $outputFilename, $key) {
    $cipher = "AES-256-CBC";
    $ivlen = openssl_cipher_iv_length($cipher);

    $inputFile = fopen($inputFilename, 'rb');
    $outputFile = fopen($outputFilename, 'wb');

    // 讀取加密文件中的初始化向量
    $iv = fread($inputFile, $ivlen);

    while (!feof($inputFile)) {
        $ciphertext = fread($inputFile, 16 * 1024);
        $plaintext = openssl_decrypt($ciphertext, $cipher, $key, OPENSSL_RAW_DATA, $iv);
        fwrite($outputFile, $plaintext);
    }

    fclose($inputFile);
    fclose($outputFile);
}

$inputFilename = 'encrypted.txt';
$outputFilename = 'decrypted.txt';
$key = 'your-32-character-key';

decryptFile($inputFilename, $outputFilename, $key);
?>

這兩個示例中的 encryptFiledecryptFile 函數分別用于加密和解密文件。請注意,密鑰應該是隨機生成的,并且足夠長(在這個例子中,我們使用了一個 32 個字符的密鑰)。在實際應用中,你需要確保密鑰的安全存儲。

0
北流市| 牙克石市| 定边县| 长宁县| 罗定市| 汉寿县| 镶黄旗| 拉孜县| 博兴县| 桑日县| 靖宇县| 广汉市| 珲春市| 阜康市| 满洲里市| 长葛市| 筠连县| 延庆县| 彩票| 桃园县| 道真| 冀州市| 柳林县| 丹东市| 临江市| 神池县| 黔东| 钟山县| 海阳市| 文安县| 大方县| 绿春县| 长沙市| 东辽县| 靖远县| 东兴市| 绥滨县| 墨竹工卡县| 长汀县| 汉阴县| 临桂县|