Odwracanie hashy - część druga
Jak już wcześniej pisałem jeśli nam zależy na znacznej poprawie szybkości działania programu do łamania haseł, najlepsze co można zrobić to spróbować ograniczyć liczbę kroków jaką wykonuje algorytm, przez odpowiednie spreparowanie hasha.
Teraz dalszy ciąg i nieco wyjaśnienia jak to dalej rozwinąć; ciągle zostajemy przy MD5 :)
Odwracanie hashy - optymalizacja ekstremalna
Ponieważ piszę program służący do łamania hashy, naturalnym jest że staram się go jak najlepiej zoptymalizować. Najpierw są proste metody - ograniczyć ilość wykonywanych operacji, zamienić wszystkie wartości jakie można przewidzieć na stałe; usunąć wszelkie głupoty jakie ktoś mógł wrzucić do kodu wybranego algorytmu (niech ktoś zgadnie jak wygląda zamiana wartości binarnej hasha na tekst w formie hex przy popularnych implementacjach). Dalej jest użycie optymalnych flag kompilatora (i dobry kompilator też robi swoje). To wszystko jest bardzo proste, łatwe i przyjemne, jednak nie daje zbyt oszałamiających wyników. Owszem, to też się liczy - ale to jest niewiele zmian, daje to niewielkie pole do popisu.
Nowy szablon
Stary szablon mi się już nieco przejadł, poza tym na paru innych joggach go widziałem, więc przyszedł czas na zmiany. Tadaaam! Nowy szablon bazuje na RubyX który bazował na jakimś innym. Wymaga jeszcze paru poprawek, może też gdzieś są błędy których nie zauważyłem... wszystko wyjdzie "w praniu".
I oświadczam wam że szablon nie jest różowy, o! Jest czerwono szary!
wolframalpha a program
Od kiedy usłyszałem o WolframAlpha (i potestowałem) miałem ochotę dodać taką funkcję do mojego bota ircowego - po przekopaniu się przez ich dokumentację można się dowiedzieć że owszem, jest api. Jest pięknie udokumentowany. Szkoda że host na jakim miał ten api się znajdować nie istnieje...
Więc dziś, mając chwilę nudy dodałem obsługę w sposób maksymalnie głupi i niewydajny, jak najbrzydszy, ale jednak działający. Tutaj wklejka zawierająca przykładowy kod (Ruby) który nam zwróci wynik wyszukiwania z WA.
Sposób obsługi banalny - puts wolfram("1+1+1+1").inspect
Czy Bing może zastąpić Google?
Dziś zaczynam test najnowszego dziecka Microsoftu. W operze już zmieniłem mapowanie "g" na Bing, więc teraz moje ultraszybkie wyszukiwanie - ctrl+t g [cośtam] będzie wyszukiwać w Bing. Jak na razie... pozytywnie. Albo inaczej: nie czuję aby się to negatywnie odbiło na wynikach.
Postaram się kilka dni używać tylko tego wynalazku. Ciekawe czy w ogóle zauważę różnicę na dłuższą metę...