Avatar billede xited Praktikant
26. maj 2009 - 00:43 Der er 5 kommentarer og
1 løsning

Generere en salted md5 hash til brug i Joomla?

Hejsa,

Jeg er så småt begyndt at lege med Joomla!, og jeg er positivt overrasket over mulighederne i systemet.

Jeg står dog og skal indlæse en liste med brugere til systemet, og skal på en eller anden måde have genereret den hash der skal indsættes i mysql-databasen.

Jeg har læst i en ældre tråd at dette skulle være fremgangsmetoden: (fra en ældre version af Joomla! formoder jeg, så den er sikkert forældet)

<?php
$str = '123'; //Pass, går jeg ud fra?
$salt = 'MiVFrU3GjnNriF23'; //Det "hemmelige ord" fra Joomla!'s administrator-side?
echo (md5($str.$salt));
?>

Resultatet er:
a7sdfa8b4f2c1233299c4a12393eabc5

I mysql ser strengene imidlertid således ud:
f122f61f4b7b39123df9e3193509c4f2:7abc2AzH201CYdmLYYBsDwHJFj446LzQ

Jeg bruger Joomla! 1.5.10

Nogen idéer til hvordan jeg når i mål?
Avatar billede majbom Novice
26. maj 2009 - 07:06 #1
hvordan bliver det lagt i databasen?

delen før kolon ligner mere noget HEX, og efter kolon ligner det godt nok en md5-hash - er det joomla der står for resten, når du har genereret din hash? det kunne næsten tyde på at joomla selv laver noget kryptering af koden, hvilket ikke undrer ville mig, da det absolut bør gøres, især i sådanne systemer, som kan bruges til alt muligt.

så umiddelbart, burde det jo ikke være nødvendigt for dig at salte og hashe yderligere...
Avatar billede xited Praktikant
26. maj 2009 - 10:46 #2
Ok, det fik jeg ikke skrevet klart nok. :)

Joomla! sørger selv for at lave krypteringen.
Problemet er at jeg skal gøre den tricket efter, da jeg skal kunne oprette brugere i Joomla!'s database "udenom" Joomla!.

Jeg har en CSV-fil fyldt med brugere fra et proprietært skole-system. Jeg skal have denne liste af brugere indlæst i Joomla!

Koderne ligger ukrypteret i denne fil, og kan dermed ikke skrives direkte ind i Joomla!'s database.

For god ordens skyld, skal nævnes at jeg har erstattet en masse af bogstaverne/tallene i ovenstående eksempel.

Nogen gode idéer?
Avatar billede majbom Novice
26. maj 2009 - 11:07 #3
Avatar billede xited Praktikant
26. maj 2009 - 12:14 #4
Super, lige hvad jeg manglede...

Det virker altså med:

<?php
$str = '123'; //Pass
$salt = 'MiVFrU3GjnNriF23MiVFrU3GjnNriF23'; // Vil dog prøve at gøre denne dynamisk.
$encrypted = md5($str.$salt).':'.$salt;
echo $encrypted;
?>

Smider du et svar?
Avatar billede majbom Novice
26. maj 2009 - 12:20 #5
kommer her :)
Avatar billede xited Praktikant
26. maj 2009 - 13:04 #6
Og så lige koden, hvor salt'en genereres tilfældigt:

<?php

$salt = '';
$length=32;
while (strlen($salt) < $length) {
  $char = chr(rand(0,255));
  if (eregi('^[a-z0-9]$', $char)) $salt .= $char;
}

$str = '123'; //Pass
$encrypted = md5($str.$salt).':'.$salt;
echo $encrypted;
?>
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester