365bet足球即时比分

php案例:文件的加密解密

php案例:文件的加密解密

文章目录一、这篇文章会教会你什么?二、使用步骤1.引入库2.效果解密总结一、这篇文章会教会你什么?在学习一个php案例

二、使用步骤1.引入库代码语言:javascript复制

function encryptFile($inputFile, $outputFile, $key)

{

// 读取原始文件内容

$inputContent = file_get_contents($inputFile);

// 生成初始化向量(IV)

/*在对数据进行加密时,为了增强安全性,一般会使用一个随机的初始化向量(IV)进行加密。IV 是一个固定长度的随机值,其作用是在同一个密钥下每次加密时都生成不同的密文,从而增强安全性*/

$iv = openssl_random_pseudo_bytes(openssl_cipher_iv_length('aes-256-cbc'));

// 使用密钥和初始化向量对文件内容进行加密.原因:以便在解密时使用。方便解密

$encryptedContent = openssl_encrypt($inputContent, 'aes-256-cbc', $key, OPENSSL_RAW_DATA, $iv);

//其中参数依次为:原始数据、加密算法、密钥、加密方式、初始化向量。

// 将初始化向量和加密后的内容合并保存到输出文件中

$encryptedData = $iv . $encryptedContent;

file_put_contents($outputFile, $encryptedData);

}

$inputFile = "cyg.txt"; // 原始文件路径

$outputFile = "D:/phpstudy_pro/WWW/cyg.enc"; // 加密后的文件路径

$key = "cyg666"; // 生成一个 256 位随机密钥

encryptFile($inputFile, $outputFile, $key);

echo "文件加密完成!";2.效果解密代码语言:javascript复制

function decryptFile($inputFile, $outputFile, $key)

{

// 读取加密后的文件内容

$encryptedData = file_get_contents($inputFile);

// 提取初始化向量(IV)

$ivlen = openssl_cipher_iv_length('aes-256-cbc');

$iv = substr($encryptedData, 0, $ivlen);

// 提取加密后的内容

$encryptedContent = substr($encryptedData, $ivlen);

// 使用密钥和初始化向量对加密内容进行解密

$decryptedContent = openssl_decrypt($encryptedContent, 'aes-256-cbc', $key, OPENSSL_RAW_DATA, $iv);

// 将解密后的内容保存到输出文件中

file_put_contents($outputFile, $decryptedContent);

}

$inputFile = "D:/phpstudy_pro/WWW/cyg.enc"; // 加密后的文件路径

$outputFile = "decrypted.txt"; // 解密后的文件路径

$key = "cyg666"; // 用于加密和解密的固定密钥

decryptFile($inputFile, $outputFile, $key);

echo "文件解密完成!";总结写完了,谢谢大家