php案例:文件的加密解密

简介: php案例:文件的加密解密

一、这篇文章会教会你什么?

学习一个php案例

二、使用步骤

1.引入库

<?php
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.效果

解密

<?php
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 "文件解密完成!";

总结

写完了,谢谢大家


相关文章
|
17天前
|
存储 运维 Serverless
函数计算产品使用问题之在YAML文件中配置了环境变量,但在PHP代码中无法读取到这些环境变量,是什么原因
函数计算产品作为一种事件驱动的全托管计算服务,让用户能够专注于业务逻辑的编写,而无需关心底层服务器的管理与运维。你可以有效地利用函数计算产品来支撑各类应用场景,从简单的数据处理到复杂的业务逻辑,实现快速、高效、低成本的云上部署与运维。以下是一些关于使用函数计算产品的合集和要点,帮助你更好地理解和应用这一服务。
|
4天前
|
API PHP UED
​一个PHP文件实现联系表单自动发送邮件
使用PHP和AOKSend服务,可以创建一个联系表单,收集用户信息并自动发送邮件。HTML表单包含姓名、邮箱和消息字段。PHP文件`send_mail.php`处理表单提交,通过AOKSend的SMTP设置(如主机、端口、API密钥)使用PHPMailer发送邮件到指定地址。代码中还包括安全措施,如使用`htmlspecialchars`防止XSS攻击。这种方法增强了网站的用户沟通体验,并依赖AOKSend的稳定性和API进行高效邮件发送。
|
18天前
|
PHP
php 上传大文件获取失败问题
php 上传大文件获取失败问题
13 0
php 上传大文件获取失败问题
|
18天前
|
Java PHP 数据安全/隐私保护
php和Java配合 aes
php和Java配合 aes加密
13 1
|
25天前
|
SQL 监控 安全
代码审计-PHP原生开发篇&SQL注入&数据库监控&正则搜索&文件定位&静态分析
代码审计-PHP原生开发篇&SQL注入&数据库监控&正则搜索&文件定位&静态分析
|
18天前
|
PHP
php+ajax传file文件数据
php+ajax传file文件数据
13 0
|
19天前
|
搜索推荐 算法 PHP
详尽分享记6种php加密解密方法
详尽分享记6种php加密解密方法
43 0
|
1月前
|
算法 PHP 数据安全/隐私保护
PHP中的数据加密技术及应用
在Web开发中,数据安全始终是一个至关重要的问题。本文将介绍PHP中常用的数据加密技术,包括对称加密算法、非对称加密算法和哈希算法的原理和应用。通过深入了解这些加密技术,开发人员可以更好地保护用户数据和提高系统的安全性。
15 0
|
PHP
php入门到精通精典案例教程
php入门到精通精典案例教程:http://www.erdangjiade.com/php
1249 0
|
18天前
|
NoSQL 关系型数据库 MySQL
linux服务器重启php,nginx,redis,mysql命令
linux服务器重启php,nginx,redis,mysql命令
26 1