我希望有人可以帮助非 PHP 开发人员提供一个示例,说明如何解密三重 DES URL 编码字符串(例如,在名为“q”的查询字符串变量中传递给页面)。
密钥为 24 位,初始化向量为 8 位。
在 C# 中,原始数据是:
- UTF-8 编码为字节数组
- 用密钥和 IV 加密
- 编码为 Base 64 字符串
- 编码为字符串的 URL
...
byte[] rawData;
TripleDES tripleDESalg = TripleDES.Create();
rawData = UTF8Encoding.UTF8.GetBytes(message);
ICryptoTransform cTransform = tripleDESalg.CreateEncryptor(key, IV);
byte[] resultArray = cTransform.TransformFinalBlock(rawData, 0, rawData.Length);
tripleDESalg.Clear();
encryptedText = Convert.ToBase64String(resultArray);
...
在 PHP 页面中,我真的找不到有关如何将这些步骤结合在一起的示例:
- 解码查询字符串变量“q”中的 URL 编码字符串
- 解码 Base 64 编码的字符串(例如 base64_decode)
- 使用用于加密它的相同密钥和 iv 解密值(假设您控制加密和解密并且两个系统都知道密钥和 iv 是什么)
- 打印/回显输出