ManaPHP\Security\Crypt::decrypt PHP Method

decrypt() public method

echo $crypt->decrypt($encrypted, "decrypt password");
public decrypt ( string $text, string $key = null ) : string
$text string
$key string
return string
    public function decrypt($text, $key = null)
    {
        if ($key === null) {
            $key = $this->_key;
        }
        $ivSize = mcrypt_enc_get_block_size($this->_mcrypt);
        if (strlen($text) < $ivSize * 3) {
            throw new CryptException('encrypted data is too short.');
        }
        $encryptKey = md5($key, true);
        mcrypt_generic_init($this->_mcrypt, $encryptKey, substr($text, 0, $ivSize));
        $decrypted = mdecrypt_generic($this->_mcrypt, substr($text, $ivSize));
        $length = unpack('N', $decrypted)[1];
        if ($length < 16 || 4 + $length > strlen($decrypted)) {
            throw new CryptException('decrypted data length is too short.');
        }
        $decrypted = substr($decrypted, 4, $length);
        $plainText = substr($decrypted, 0, -16);
        if (md5($plainText, true) !== substr($decrypted, -16)) {
            throw new CryptException('decrypted md5 is not valid.');
        }
        return $plainText;
    }