1 回答
TA贡献1872条经验 获得超3个赞
如果从 Java 代码中获取以下设置,则可以使用 Github 代码进行解密:
盐(十六进制):
A99BC8325634E303
迭代:
19
例子:
Passphrase: MyPassphraseXYZ
Plaintext: The quick brown fox jumps over the lazy dog
Ciphertext from the Java code: xWnsqJJ4pqWTrm8kIwfyw1djD4lu0zig0wnohS+EtwDvHBgEP/BS25qyaE+QEdxd
可以使用 PHP 代码解密密文,如下所示:
$data = "xWnsqJJ4pqWTrm8kIwfyw1djD4lu0zig0wnohS+EtwDvHBgEP/BS25qyaE+QEdxd";
$keystring = "MyPassphraseXYZ";
$salt = "A99BC8325634E303";
$iterationsMd5 = 19;
$decrypted = PbeWithMd5AndDes::decrypt($data, $keystring, $salt, $iterationsMd5);
print($decrypted . "\n");
必须考虑以下因素:PbeWithMd5AndDes
已经过时并且已经存在多年,Github 代码本身使用了其他已弃用的函数,例如mcrypt_module_XXX()
and mcrypt_generic_YYY()
,因此此代码只能在 PHP < 7.2 的情况下执行。在 PHP 7.1 中,显示弃用警告。只有 PHP < 7.1 的代码可以在没有警告的情况下执行。总而言之,算法和代码都是不安全的。
添加回答
举报