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); // 输出结果
}

?>

使用说明:

  1. my_secret_key 替换成您的密钥。
  2. 在加密时,将需要加密的视频地址作为 GET 参数 url 传递给加密脚本。
  3. 在解密时,将加密后的视频地址(包含前缀 ergou-)作为 GET 参数 url 传递给解密脚本。

注意事项:

  • 保持密钥的安全性,不要将其暴露给任何人。
  • 使用安全的 HTTPS 协议传输加密后的数据。
  • 定期更新密钥以提高安全性。

参考文档:

PHP AES 加密视频地址:不限长度,附带解密代码

原文地址: https://www.cveoy.top/t/topic/lRoS 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录