Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/240.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在PHP页面中解密三重DES字符串?_Php_Encryption - Fatal编程技术网

如何在PHP页面中解密三重DES字符串?

如何在PHP页面中解密三重DES字符串?,php,encryption,Php,Encryption,我希望有人能帮助一个非PHP开发人员,举例说明如何解密三重DES URL编码字符串(例如,在名为“q”的querystring变量中传递到页面) 密钥为24位,初始化向量为8位 在C#中,原始数据为: UTF-8编码为字节数组 使用密钥和IV进行加密 编码为基64字符串 编码为字符串的URL 在PHP页面中,我找不到如何将这些步骤结合在一起的示例: 解码querystring变量“q”中的URL编码字符串 解码base64编码字符串(例如base64_解码) 使用用于加密的相同密钥和iv对值

我希望有人能帮助一个非PHP开发人员,举例说明如何解密三重DES URL编码字符串(例如,在名为“q”的querystring变量中传递到页面)

密钥为24位,初始化向量为8位

在C#中,原始数据为:

  • UTF-8编码为字节数组
  • 使用密钥和IV进行加密
  • 编码为基64字符串
  • 编码为字符串的URL
  • 在PHP页面中,我找不到如何将这些步骤结合在一起的示例:

  • 解码querystring变量“q”中的URL编码字符串
  • 解码base64编码字符串(例如base64_解码)
  • 使用用于加密的相同密钥和iv对值进行解密(假设您控制加密和解密,并且两个系统都知道密钥和iv是什么)
  • 打印/回显输出

  • 从查询字符串获取值

    $string=$\u请求['q']

    URL解码

    基本64解码

    解密

    使用

    对于第一个参数,传入密码(),在您的例子中,密码是
    MCRYPT_DES

    剩下的参数将是密文、密钥、iv等

    PHP手册是详尽的。使用它

    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);