php 使用异或加密/解密文件
时间: 2024-01-08 14:05:01 浏览: 100
AES加解密在php接口请求过程中的应用示例
PHP 中可以使用异或运算符来进行简单的加密和解密操作,例如:
```php
<?php
// 加密文件
function encrypt_file($input_file, $output_file, $key) {
$content = file_get_contents($input_file);
$encrypted = '';
$key_len = strlen($key);
for ($i = 0; $i < strlen($content); $i++) {
$encrypted .= $content[$i] ^ $key[$i % $key_len];
}
file_put_contents($output_file, $encrypted);
}
// 解密文件
function decrypt_file($input_file, $output_file, $key) {
$content = file_get_contents($input_file);
$decrypted = '';
$key_len = strlen($key);
for ($i = 0; $i < strlen($content); $i++) {
$decrypted .= $content[$i] ^ $key[$i % $key_len];
}
file_put_contents($output_file, $decrypted);
}
// 使用示例
$key = 'my_secret_key';
encrypt_file('test.txt', 'test_encrypted.txt', $key);
decrypt_file('test_encrypted.txt', 'test_decrypted.txt', $key);
?>
```
上面的代码中,我们定义了两个函数 `encrypt_file` 和 `decrypt_file`,分别用于加密和解密文件。这两个函数都接受三个参数:输入文件名、输出文件名和加密/解密密钥。
加密/解密操作都是通过对文件内容中的每个字节和密钥中的对应字节进行异或运算来实现的。注意到这里的密钥需要与文件内容的长度对应,如果密钥长度不足,则需要对密钥进行扩展。
需要注意的是,由于简单的异或加密算法容易被破解,因此在实际应用中需要使用更加安全的加密算法来保护数据的安全。
阅读全文