Thread Fehler in Hash-Algorithmus (12 answers)
Opened by Gast at 2008-07-02 22:22

Gast Gast
 2008-07-02 22:34
#111750 #111750
Code (perl): (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
print "Wort:";
$pw=<STDIN>;

chomp($pw);
$la=length($pw);                                    # Länge des Wortes
                  
$cos1=0;                                                # Teil die Buchstaben der Eingabe in einzelne Strings auf.
while($cos1<$la){
$ter1 = substr ($pw,$cos1,1);
push(@db1,$ter1);                  
$cos1++;
}            

#
                                
$res=$la*36;
$res2=$res/33;            
$ra = 36/$res2;

#
$trash='gt9uysf4d6pw2m1aqhcj0xv73bkliorn5ez8';
$co3=0;
$feng=$la*26;
while($co3<=$feng){     # Erzeugt (26*Wortlänge) Anzahl verschiedener schrott-code.
$tr=$trash;
$tr2=$trash;
$subs= substr($tr2,-$co3,$co3);
substr($tr,0,0)=$subs;
substr($tr,-$co3,$co3)='';
$co3++;                              
push(@trash,"$tr$tr$tr");                  
}

#

if ($la & 1){$ge='-'}  # guckt ob das wort gerade/ungerade ist

@ar= a..z;                 
@arg= A..Z;                    
while($qet5<$la){    # für diese schleife solange durch wie das Wort lang ist.

$var=0;
      while($var<26){ 
$tq=@trash[$zj];
            if(@db1[$qet5]=@ar[$var]){# Untersucht jeden Buchstaben ob er nun a,b,c etc ist und gibt jedem einen anderen trashcode.
            $tn=$ge.($var+$la);            
            $subs= substr($tq,$tn,$ra);             # nimmt soviel von dem trash code dass der hash am Ende 33 zeichen ergibt, und ersetzt die buchstaben des wortes.
print "$subs\n";
            substr(@db1[$qet5],0,$ra)=$subs;              
            }
            if(@db1[$qet5]=@arg[$var]){      # Macht das selbe mit Grossbuchstaben
            $tn2=$ge.($var+$la+1);
            $subs= substr($tq,$tn2,$ra);            
            substr(@db1[$qet5],0,$ra)=$subs;
            }
$zj++;                # nimmt einen neuen trash-code.
      $var++;       # geht zum nächsten buchstaben des alphabets.
      }
$qet5++;           #geht zum nächsten buchstaben des wortes.
}
print "@db1";

View full thread Fehler in Hash-Algorithmus