Projektowanie stron WWW od podszewki

Artykuły na każdy temat

[PHP] Odzyskiwanie "utraconego" hasła Jabbera z pliku konfiguracyjnego PSI

Dodano 17.02.2016r. o 14:00
Jest któraś w nocy i podbija do mnie kumpel z tematem. Chodzi o odszyfrowywanie hasła, którego zapomniał do Jabbera w aplikacji zwanej PSI. Pomyślałem sobie, że nie jestem chamem to pomogę ziomkowi. Sprawa była o tyle prosta, że hasło było zapisane za sprawą użycia magicznego "zapamiętaj hasło". Chwila czasu w Google i już wiadomo co jest pięć. Potem wpadam na jakiegoś bloga z kodem niestety szkoda na niego czasu, bo... QString i inne syfy marnujące czas aby skompletować projekt gotowy do skompilowania. Następnie dostrzegam zalinkowane rozwiązanie w syfiastym Perlu wyglądające mniej więcej tak:
Kod:
perl -le '($jid,$password)=@ARGV;$password=~s/..(..)/chr hex$1/ge;print substr($password^$jid,0,length$password)' account@server.domain my_hashed_password_in_hex
i dochodzimy do wniosku, że to jeszcze większy syf. Potem znajdujemy jeszcze bardziej beznadziejny przykład w Pythonie. W związku z tym piszemy w ciągu paru sekund coś w bardziej uniwersalnym i cywilizowanym języku jakim jest ukochany PHP Smile Efekt pracy wygląda tak:
Kod:
<?php
$jid ''// <jid type="QString">account@server.domain</jid>
$password ''// <password type="QString">strange bytes</password>
$jid_length strlen($jid);

foreach(str_split($password4) as $hex)
{
 echo chr(hexdec($hex) ^ ord($jid[$offset++ % $jid_length]));
}
?>
Dawniej dane były w config.xml natomiast obecnie są w accounts.xml.

PS
Dla osób, które wykorzystały w haśle znak wykraczający po za zakres ASCII polecam zaimplementować to.

Komentarze

Brak komentarzy

Dodaj komentarz

Zostaw komentarz jeżeli możesz! Nie bądź przysłowiowym botem! Nie bądź obojętny! Ciebie to nic nie kosztuje, a mi sprawi uśmiech na twarzy.
Zezwolono używać: BBCode
Zabroniono używać:
znaczników HTML

(Wymagany)

(Wymagany, niepublikowany)

(Nie wymagana)

Token:

Obrazek dla bota

(Przepisz tylko cyfry!)

(Wymagana)