Navigation

Mushroom Photo

Category: Coding

Md5/Salt...whatever Crack-klasse

Apr 21, 05:30 PM
Kommentare


Ich schreib keine grosse Erklärung Was auch immer…mir war einfach langweilig und hab die Klasse mal geschrieben, schön ist, dass sie nicht von der encrypt methode abhängig ist, weil die encrypt methode selber geschrieben werden kann
halt über ein extend….einfach mal durchschauen, fals nicht zurechtkommen, Kommentar oder email ^^
Das andere was vielleicht noch erwähnt werden sollte….das ganze basiert auf brute-force und ist deshalb überhaupt nicht effektiv aber funktionieren tut es ^^ für kleinere passwörter ist das kein problem :D
achja…das ganze ist für konsole gemacht, webserver hält das nicht durch ^^

  1. #!/usr/bin/php
  2. <?php
  3. class Crack {
  4. private $length = '';
  5. private $hash = '';
  6. private $symbols = array();
  7. private $value = array();
  8. private $layer = 0;
  9. function __construct($hash,$length='') {
  10. $this->setHash($hash);
  11. $this->setLength($length);
  12. }
  13. public function setSymbols($array) {
  14. $this->symbols = $array;
  15. }
  16. public function setLength($length) {
  17. $this->length = $length;
  18. }
  19. public function setHash($hash) {
  20. $this->hash = (!empty($hash) ? $hash : $this->hash);
  21. }
  22. public function getPossibilities() {
  23. return number_format(pow(count($this->symbols),$this->length),0,',','.');
  24. }
  25. public function crack($hash='') {
  26. $this->setHash($hash);
  27. if(empty($this->length)) {
  28. $this->setLength(1);
  29. while(1) {
  30. if($this->determine()) {
  31. return implode('',$this->value);
  32. } else {
  33. $this->length++;
  34. }
  35. }
  36. } else {
  37. if($this->determine()) {
  38. return implode('',$this->value);
  39. }
  40. }
  41. }
  42. private function determine() {
  43. $this->layer++;
  44. for($i = 0; $i < count($this->symbols); $i++) {
  45. $this->value[$this->layer] = $this->symbols[$i];
  46. if($this->length > $this->layer) {
  47. if($this->determine()) {
  48. $this->layer--;
  49. return true;
  50. }
  51. } else {
  52. if($this->encrypt(implode('',$this->value)) == $this->hash) {
  53. $this->layer--;
  54. return true;
  55. }
  56. }
  57. #unset($this->value[count($this->value)-1]);
  58. }
  59. $this->layer--;
  60. return false;
  61. }
  62. private function encrypt($string) {
  63. return $string;
  64. }
  65. }
  66. class Md5Crack extends Crack {
  67. private function encrypt($string) {
  68. return md5($string);
  69. }
  70. }
  71. $o = new Md5Crack('598d4c200461b81522a3328565c25f7c',5);
  72. $o->setSymbols(array_merge(range(A,Z),range(a,z),range(0,9)));
  73. print 'Moeglichkeiten: '.$o->getPossibilities()."\n";
  74. print '['.date('H:i:s d/m/Y').'] Start...'."\n";
  75. print "\t\t".'Password: '.$o->crack();
  76. print '['.date('H:i:s d/m/Y').'] Finished'."\n";
  77. ?>


Latex in Textpattern

Apr 20, 06:06 AM
Kommentare [1]


Mich hat es ziemlich genervt, dass es Latex-Plugins gibt für wordpress und co, aber nicht für Textpattern…aber ich wollte auch mit formeln schreiben, also hab ich mir mal Textile genauer angeschaut und mir selber ein Latex-Plugin geschrieben, noja was heisst Plugin, es ist mehr ein Hack :D
See:

 \displaystyle P_\nu^{-\mu}(z)=\frac{\left(z^2-1\right)^{\frac{\mu}{2}}}{2^\mu \sqrt{\pi}\Gamma\left(\mu+\frac{1}{2}\right)}\int_{-1}^1\frac{\left(1-t^2\right)^{\mu -\frac{1}{2}}}{\left(z+t\sqrt{z^2-1}\right)^{\mu-\nu}}dt

Es benutzt wordpress.com….man könnte zwar auch mimetex verwenden, aber wordpress.com macht die besseren formeln.

für eine Beschreibung: Latex auf wordpress.com

Nach dem Hack kann man recht schön Latexformeln verwenden mit:
$$(latexformel)$$
aber es gehen auch:
<latex>(latexformel)</latex>
und natürlich
<math>(formel)</math>
$latex (formel)$

Nunja…wie baut man das ganze ein, wenn man sich ein bisschen in Textile eingelesen hat, kommt man recht schnell drauf, wie man das ganze verwendet ^^
Die Klasse für Textile liegt in
/textpattern/lib/classTextile.php
Wenn man sich die Datei anschaut, merkt man wie das ganze aufgebaut ist. Es gibt eine Methode: graf, die die ganzen anderen Methoden aufruft.
Hier muss natürlich etwas verändert werden.
Aber erst müssen wir die zwei Methoden schreiben, die überhaupt das ganze in ein Bild umwandeln:

  1. function latex($text)
  2. {
  3. $text = $this->doSpecial($text,'$$','$$','fLatex');
  4. $text = $this->doSpecial($text,'$latex','$','fLatex');
  5. $text = $this->doSpecial($text,'<latex>','</latex>','fLatex');
  6. $text = $this->doSpecial($text,'<math>','</math>','fLatex');
  7. return $text;
  8. }
  9. function fLatex($m)
  10. {
  11. @list(, $before,$text,$after) = $m;
  12. return $before.$this->shelve('<img src="http://l.wordpress.com/latex.php?latex='.$text.'" alt="'.$text.'" />').$after;
  13. }

wo die Methoden eingefügt werden ist eigentlich egal, ich hab sie nach dem fCode eingefügt damit alles zusammenbleibt und in Reihenfolge ist

nun kommt noch eine kleine Zeile dazu in der graf-Methode:

  1. $text = $this->latex($text);

Diese Zeile gleich nach dieser

  1. $text = $this->code($text);

einfügen, damit es bei einem lite nicht auch ausgetauscht wird….was dieses lite bewirkt…keine ahnung ^^

nunja…damit sollte latex in deinem Blog funktionieren.

Wenn mir jemand sagen kann, wie ich das als externes Plugin schreib, dann mach ich das gerne, aber wie schreib ich Plugins für Textile ^^
Bloss hab ich so dringend Formeln in meinem Blog gebraucht, dass ich mich nichtmehr weiter damit beschäftigen konnte :D

mal schaun, was die Textpattern leute dazu sagen, und ob das nochmal eine Verbesserung für Textile wäre :D



Feeds