PHP AES 加密视频地址:不限长度,附带解密代码
PHP AES 加密视频地址:不限长度,附带解密代码
本文提供一个 PHP 代码示例,使用 AES 加密视频地址,并附带解密代码。代码特点包括:
- 不限制视频地址长度: 可以加密任意长度的视频地址。
- AES-256-CBC 加密: 使用 AES-256-CBC 加密算法,提供较高的安全性。
- JSON 格式输出: 加密和解密结果都以 JSON 格式输出,方便解析。
- 包含解密代码: 提供配套的解密代码,方便还原加密后的视频地址。
加密 PHP 代码:
<?php
function encrypt($data, $key) {
$iv = openssl_random_pseudo_bytes(openssl_cipher_iv_length('aes-256-cbc')); // 生成随机向量
$encrypted = openssl_encrypt($data, 'aes-256-cbc', $key, OPENSSL_RAW_DATA, $iv); // 加密
return base64_encode($iv . $encrypted); // 返回base64编码的加密结果
}
if(isset($_GET['url'])) { // 如果有传入需要加密的视频地址
$video_url = $_GET['url'];
$encrypted_url = encrypt($video_url, 'my_secret_key'); // 加密
$result = array('encrypted_url' => 'ergou-' . $encrypted_url); // 加上前缀ergou-
echo json_encode($result); // 输出结果
}
?>
解密 PHP 代码:
<?php
function decrypt($data, $key) {
$data = base64_decode($data); // 解码base64字符串
$iv = substr($data, 0, openssl_cipher_iv_length('aes-256-cbc')); // 获取随机向量
$encrypted = substr($data, openssl_cipher_iv_length('aes-256-cbc')); // 获取加密数据
return openssl_decrypt($encrypted, 'aes-256-cbc', $key, OPENSSL_RAW_DATA, $iv); // 解密
}
if(isset($_GET['url'])) { // 如果有传入需要解密的视频地址
$encrypted_url = substr($_GET['url'], 6); // 去掉前缀ergou-
$decrypted_url = decrypt($encrypted_url, 'my_secret_key'); // 解密
$result = array('decrypted_url' => $decrypted_url);
echo json_encode($result); // 输出结果
}
?>
使用说明:
- 将
my_secret_key替换成您的密钥。 - 在加密时,将需要加密的视频地址作为 GET 参数
url传递给加密脚本。 - 在解密时,将加密后的视频地址(包含前缀
ergou-)作为 GET 参数url传递给解密脚本。
注意事项:
- 保持密钥的安全性,不要将其暴露给任何人。
- 使用安全的 HTTPS 协议传输加密后的数据。
- 定期更新密钥以提高安全性。
参考文档:
原文地址: https://www.cveoy.top/t/topic/lRoS 著作权归作者所有。请勿转载和采集!