1 回答

TA貢獻1872條經驗 獲得超4個贊
如果從 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 的情況下執(zhí)行。在 PHP 7.1 中,顯示棄用警告。只有 PHP < 7.1 的代碼可以在沒有警告的情況下執(zhí)行。總而言之,算法和代碼都是不安全的。
添加回答
舉報