【发布时间】:2020-12-14 20:47:45
【问题描述】:
我正在努力将 API 集成到我们的网络应用程序中。在初始请求中,API 返回使用 PBEWithMD5AndTripleDES 加密进行加密的响应,然后进行 base 64 编码。我有一个事先提供给我的加密密码。由于我缺乏经验和 PBEWithMD5AndTripleDES 文档,我正在努力解密响应。我试过使用phpseclib 没有任何运气。
这是我的 phpseclib 代码
$res = $response->getBody()->getContents();
$res = base64_decode($res);
// this is provided by vendor
$password = self::PASSWORD;
// I tried this too.
//$password = md5(utf8_encode($password), true);
$tripleDes = new TripleDES(TripleDES::MODE_CBC);
$tripleDes->setKey($password);
$ddd = $tripleDes->decrypt($res);
// this is returning false
var_dump($ddd); die();
您能否提供一些关于如何在 PHP 中使用 PBEWithMD5AndTripleDES 的示例,或者指出一些方向或文档。
【问题讨论】:
-
如果没有关于加密部分的更多信息,我们将很难为您提供帮助。您命名为“PBEWithMD5AndTripleDES”,但在我看来,这是密钥派生的算法。所以我们需要知道使用的是哪种加密算法和模式。提供样本数据集(明文、密钥、iv?、salt?、结果)也是完美的。
-
请注意,“PBEWithMD5AndTripleDES”是一个不好使用的算法。
-
在此处查看 phpseclib 3.0 如何使用 pbeWithMD5AndDES-CBC 做到这一点:github.com/phpseclib/phpseclib/blob/… pbeWithMD5AndTripleDES-CBC 不在我所知道的任何 IETF RFC 中。 pbeWithMD5AndDES-CBC 定义在tools.ietf.org/html/rfc2898#appendix-A.3
标签: php encryption phpseclib tripledes