PHP fce(joomla) převedená do Javy nefunguje jak by potřebuji – Java – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

PHP fce(joomla) převedená do Javy nefunguje jak by potřebuji – Java – Fórum – Programujte.comPHP fce(joomla) převedená do Javy nefunguje jak by potřebuji – Java – Fórum – Programujte.com

 

Argos
~ Anonymní uživatel
2 příspěvky
5. 12. 2009   #1
-
0
-

Ahoj, potřeboval bych se přihlásit do Joomly ze své java aplikace, nicméně mám problém s porovnáním hesla, v Joomle se dané heslo porovnává následovně:

public static boolean check(String passwd,String dbEntry) {

if (passwd==null || dbEntry==null || dbEntry.length()==0)
throw new IllegalArgumentException();
String[] arr = dbEntry.split(":",2);
if (arr.length==2) {
// new format as {HASH}:{SALT}
String cryptpass = arr[0];
String salt = arr[1];

return md5(passwd+salt).equals(cryptpass);
} else {
// old format as {HASH} just like PHPbb and many other apps
String cryptpass = dbEntry;

return md5(passwd).equals(cryptpass);
}

do Javy jsem danou funkci převedl jako:


private boolean hashPassword(String txtPass2,String dbEntry) {
String hashword = null;
String orig = null;
String salt = null;
try {
StringTokenizer tk = new StringTokenizer(dbEntry,":");
orig = tk.nextToken();
salt = tk.nextToken();
MessageDigest md5 = MessageDigest.getInstance("MD5");
md5.update((txtPass2+salt).getBytes(),0,(txtPass2+salt).length());
BigInteger hash = new BigInteger(1, md5.digest());
hashword = hash.toString(16);

} catch (NoSuchAlgorithmException nsae) {

}
return (hashword==orig);
}

a následně samozřejmě
boolean hash = hashPassword(txtPass, dbEntry);

nicméně řetězec který si z vloženého textu generuje php a java se prostě liší(délka stejná), neví někdo kdě dělám chybu? děkuji za každé nakopnutí správným směrem... ;-).

Nahlásit jako SPAM
IP: 89.248.248.–
Argos
~ Anonymní uživatel
2 příspěvky
5. 12. 2009   #2
-
0
-

To Argos : Beru zpět - přece jen s Javou jsem začal oproti php poměrně nedávno a tak jsem si ještě nezvyknul na to že dva řetězce se musí porovnávat .equals(); - vše jede jak má, akorát zrovna asi když jsem si vypisoval mezihodnoty, tak jsem zadal jiný řetězec ze kterého se vypisovalo, takže i výsledný hash byl jiný... :-[

Nahlásit jako SPAM
IP: 89.248.248.–
Zjistit počet nových příspěvků

Přidej příspěvek

Toto téma je starší jak čtvrt roku – přidej svůj příspěvek jen tehdy, máš-li k tématu opravdu co říct!

Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku

×Vložení zdrojáku

×Vložení obrázku

Vložit URL obrázku Vybrat obrázek na disku
Vlož URL adresu obrázku:
Klikni a vyber obrázek z počítače:

×Vložení videa

Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×
 
Podporujeme Gravatara.
Zadej URL adresu Avatara (40 x 40 px) nebo emailovou adresu pro použití Gravatara.
Email nikam neukládáme, po získání Gravatara je zahozen.
-
Pravidla pro psaní příspěvků, používej diakritiku. ENTER pro nový odstavec, SHIFT + ENTER pro nový řádek.
Sledovat nové příspěvky (pouze pro přihlášené)
Sleduj vlákno a v případě přidání nového příspěvku o tom budeš vědět mezi prvními.
Reaguješ na příspěvek:

Uživatelé prohlížející si toto vlákno

Uživatelé on-line: 0 registrovaných, 34 hostů

Moderátoři diskuze

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032024 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý