Generating a Joomla Password (for reseting)

Posted on February 23, 2011 in Tutorials

I recently found myself in the awkward situation of having only a Super Admin user in the Joomla installation, and neither I nor my client knew the password. I had to the fix the problem, and I decided to do so by generating a Joomla user password (which required a lot of searching through code, mind you). Here's the PHP code I used:

<?php
// JUserHelper class from libraries/joomla/user/helper.php
$pwd = 'my_new_password';
$instance = new JUserHelper();
$salt = $instance->genRandomPassword(32);
$final_pwd = $instance->getCryptedPassword($pwd, $salt) . ':' . $salt;
?>

(Note that I have to use the <?php tags to get syntax highlighting to work properly.)

This is the technique Joomla uses to generate a password when a password reset is requested. The JUserHelper class provides the hashing functions we need. A Joomla password is made up of two sections separated by a colon; the first is the hashed password, and the second is the salt used to hash it.

However, for a simple technique, that will work just fine, you can use the md5 function:

<?php
$pwd = md5('my_new_password');
?>

Or even an SQL query:

UPDATE jos_users SET password = MD5('password') WHERE id = <user_id_here>;

But that's not the standard Joomla way of doing it. If you used the PHP code, you can update the user with this query:

UPDATE jos_users SET password = <password_here> WHERE id = <user_id_here>;

Hope that helps.


Tagged in cryptography, Joomla, PHP, web development
blog comments powered by Disqus