We had a need to decrypt plesk passwords upon request to interface with another system so after a bit of playing about the following code is what we landed at:-
<?php $key = file_get_contents("/etc/psa/private/secret_key"); $hash = explode(' Just pass the AES string in its entirety from the psa database. Hope this helps people :) James , '$AES-128-CBC$some-example-string==$some-example-salt=='); $iv = base64_decode($hash[2]); $ct = base64_decode($hash[3]); $dec = str_replace("\0", "", mcrypt_decrypt(MCRYPT_RIJNDAEL_128, $key, $ct , MCRYPT_MODE_CBC, $iv)); echo($dec); ?>
Just pass the AES string in its entirety from the psa database.
Hope this helps people 🙂
James