You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用MD5或其他加密函数加密三个变量并传递至其他页面解密?

嘿,先给你敲个重点:MD5是哈希算法,不是可逆的加密算法——它只能把明文转成固定长度的哈希值,没法从哈希值还原回原始内容。所以如果你需要加密后还能解密还原出那三个变量,得用对称加密算法,比如AES,这是目前常用且安全的选择。

下面给你用PHP写完整的示例(看你的代码风格应该是用PHP),分加密、传递、解密三个步骤:

第一步:加密原始变量并准备传递

首先我们把三个变量打包成一个结构化数据(比如JSON),然后用AES-256-CBC加密,最后把加密结果和初始化向量(IV)编码成可传递的格式:

// 你的原始变量
$package = "Gold";
$code = "abc1234";
$vcode = "23ffggd45";

// 1. 把变量打包成数组,转成JSON字符串(JSON比serialize更安全,避免反序列化漏洞)
$rawData = json_encode([
    'package' => $package,
    'code' => $code,
    'vcode' => $vcode
]);

// 2. 配置加密参数:密钥要保密,建议32位长度对应AES-256;IV随机生成(每次加密都不一样)
$secretKey = 'your-32-character-secure-secret-key'; // 自己替换成32位的密钥,比如"mySuperSecretKey1234567890abcdef"
$iv = openssl_random_pseudo_bytes(openssl_cipher_iv_length('aes-256-cbc'));

// 3. 执行加密
$encryptedData = openssl_encrypt($rawData, 'aes-256-cbc', $secretKey, OPENSSL_RAW_DATA, $iv);

// 4. 把IV和加密结果转成base64,方便在URL/表单中传递(二进制内容不能直接传递)
$encodedIv = base64_encode($iv);
$encodedEncrypted = base64_encode($encryptedData);

// 准备传递到目标页面,比如用GET参数(建议用POST更安全,避免数据暴露在URL)
$targetUrl = "your-target-page.php?iv={$encodedIv}&data={$encodedEncrypted}";

第二步:目标页面解密还原变量

在接收的页面,我们用相同的密钥和传递过来的IV解密,然后还原出原始变量:

// 获取传递过来的参数
$encodedIv = $_GET['iv'];
$encodedEncrypted = $_GET['data'];

// 用和加密时完全相同的密钥
$secretKey = 'your-32-character-secure-secret-key';

// 解码IV和加密数据
$iv = base64_decode($encodedIv);
$encryptedData = base64_decode($encodedEncrypted);

// 执行解密
$decryptedRawData = openssl_decrypt($encryptedData, 'aes-256-cbc', $secretKey, OPENSSL_RAW_DATA, $iv);

// 还原成原始数组,取出变量
$originalData = json_decode($decryptedRawData, true);
$package = $originalData['package'];
$code = $originalData['code'];
$vcode = $originalData['vcode'];

// 验证结果
echo "还原后的内容:Package={$package}, Code={$code}, Vcode={$vcode}";

一些重要的注意事项

  • 密钥必须保密:绝对不能把密钥暴露给前端,要存在服务器的配置文件里,比如.env文件,不要硬编码到代码中。
  • IV必须随机:每次加密都要生成新的IV,这样即使相同的明文,加密结果也不一样,大大提升安全性。
  • 优先用POST传递:GET参数会暴露在URL里,敏感数据建议用POST方式传递,或者用HTTPS加密传输链路。
  • 不要用哈希算法做可逆加密:MD5、SHA1、SHA256这些都是哈希算法,只能用来验证数据是否被篡改,不能用来做可逆的加密解密。

内容的提问来源于stack exchange,提问作者Chew Halo

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.26 10:36:25