JCRYPT-MCRYPT-001
JCryptCipherMcrypt
JCryptCipherMcrypt / 3Des / Blowfish / Simple
Weak and mcrypt-based ciphers were removed. PHP mcrypt is gone too.
JCryptCipherMcrypt → CryptCipherCrypto / Sodium / OpenSSL
What you will see
- Class "JCryptCipherMcrypt" not found
- Class "JCryptCipher3Des" not found
- Call to undefined function mcrypt_encrypt
Symptoms people search
cannot decrypt config · mcrypt
Replace this code
Swap JCryptCipherMcrypt for CryptCipherCrypto / Sodium / OpenSSL.
Joomla 3
Remove or stop calling this
$crypt = new JCrypt(new JCryptCipherMcrypt());Joomla 4 / 6
Use this instead
Use Joomla\CMS\Crypt\Cipher\CryptoCipher. Do not use mcrypt.How to fix it
- 1Re-encrypt data with Sodium/OpenSSL ciphers.
- 2You cannot decrypt old mcrypt blobs without a one-off migrator.
Also known as
mcrypt · JCryptCipher3Des · JCryptCipherBlowfish · JCryptCipherSimple · hasStrongPasswordSupport
There is no 1:1 swap for this one. The architecture changed. If you cannot rewrite it, Infyways can.
Related issues
- Joomla 3 → 4PHP
jimport() autoloader calls
jimport('joomla.filesystem.file') → use Joomla\CMS\Filesystem\File;
- Joomla 3 → 4PHP
DS path constant
DS → DIRECTORY_SEPARATOR or /
- Joomla 3 → 4PHP
JPATH_PLATFORM
JPATH_PLATFORM → Do not use — autoload instead
- Joomla 3 → 4JavaScript
Chosen.js (formbehavior.chosen)
JHtml::_('formbehavior.chosen') → Core styled <select>, Choices.js, or Tom Select
- Joomla 3 → 4PHP
mysql_* PHP functions
mysql_query() → Joomla DatabaseInterface / mysqli / PDO
- Joomla 3 → 4PHP
each() / create_function() / ereg / split
each($array) → foreach / closures / preg_*