<?php
// 文件加密示例代码
function encrypt_file($inputFile, $outputFile, $key) {
// 打开输入文件进行读取
$fpIn = fopen($inputFile, 'rb');
if (!$fpIn) {
return false;
}
// 打开输出文件进行写入
$fpOut = fopen($outputFile, 'wb');
if (!$fpOut) {
fclose($fpIn);
return false;
}
// 初始化加密方法和密钥
$method = 'aes-256-cbc';
$ivlen = openssl_cipher_iv_length($method);
$iv = openssl_random_pseudo_bytes($ivlen);
// 写入初始化向量 (IV)
fwrite($fpOut, $iv);
// 逐块读取并加密文件内容
while (!feof($fpIn)) {
$plaintext = fread($fpIn, 8192);
$ciphertext = openssl_encrypt($plaintext, $method, $key, $options=0, $iv);
$iv = substr($ciphertext, 0, $ivlen); // 更新 IV
fwrite($fpOut, $ciphertext);
}
// 关闭文件指针
fclose($fpIn);
fclose($fpOut);
return true;
}
// 示例调用
$inputFile = 'example.php'; // 输入文件路径
$outputFile = 'encrypted_example.php'; // 输出文件路径
$key = 'your-secret-key-32-chars'; // 加密密钥,必须是32个字符长
if (encrypt_file($inputFile, $outputFile, $key)) {
echo "文件加密成功";
} else {
echo "文件加密失败";
}
?>
encrypt_file
函数接受三个参数:输入文件路径、输出文件路径和加密密钥。fopen
打开输入和输出文件,并检查是否成功打开。如果你需要进一步的帮助或有其他问题,请告诉我!
上一篇:php 拆分字符串
下一篇:php 三元表达式
Laravel PHP 深圳智简公司。版权所有©2023-2043 LaravelPHP 粤ICP备2021048745号-3
Laravel 中文站