Joomla! 1.0.13 ha introdotto un metodo diverso di memorizzazione delle password.
Nelle versioni precedenti alla 1.0.13, la password di ogni utente era salvata all'interno della tabella "jos_users" del database con la criptazione MD5.
MD5 è un algoritmo che permette di crittografare una stringa di dimensioni variabili (nel caso in esame, la password dell'utente) convertendola in un'altra stringa alfanumerica a 128 bit(ovvero di 32 caratteri).Risulta praticamente impossibile decifrare tale stringa criptata e non si può "scovare" la password ricorrendo alla decriptazione dall'hash MD5.
L'algoritmo MD5 si sta però rivelando sempre meno sicuro, dato che molti siti MD5 cracker possiedono ormai un database sufficientemente esteso per risalire a password di media-breve lunghezza a partire dall'hash delle stesse.
Joomla! 1.0.13 ha introdotto un'importante novità per quanto riguarda la sicurezza di una password memorizzata all'interno del database; in coda all'MD5 della password vengono infatti aggiunti 16 caratteri pseudo-casuali che vengono generati appositamente dalla funzione josHashPassword.
Confrontiamo ora l'hash della password "password" salvato all'interno del database, in Joomla! 1.0.12 e precedenti e in Joomla! 1.0.13 e successive:
Joomla! 1.0.12 e precedenti:
5f4dcc3b5aa765d61d8327deb882cf99
Joomla! 1.0.13 e successive:
4036e55d77a8afa59ec0ee1ea7dc1b65:QMag1PDC5XhIFYPZ
Dal confronto si può facilmente verificare che i caratteri aggiunti al termine dell'MD5, dopo i ":", conferiscono un'ulteriore sicurezza all'hash della password. Cià è possibile grazie all'uso di caratteri alfanumerici, maiuscoli e minuscoli, che risultano diversi per ogni password generata, anche in caso di password identiche.