wie bekomme ich alle Kombinationen von 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 bis 0xff,0xff,0xff,0xff,0xff,0xff ? so funktioniert es leider nicht:
1 | |
2 | |
3 | |
4 | |
5 | |
6 | |
7 | |
8 | |
|
Anzeige
|
Alle Kombinationenwie bekomme ich alle Kombinationen von 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 bis 0xff,0xff,0xff,0xff,0xff,0xff ? so funktioniert es leider nicht:
Gast
#3388859
Warum einmal bis 16 und einmal bis 256? Für alle Kombinationen: beide Schleifen von 0..bis 255 Vergleich mit 256 wird auch nicht funktionieren (255 ist die größe 8bit-Zahl). Sorry meinte so aber kommen trotzdem nicht alle Kombinationen raus hier zählt er ja nur hoch :(
Gast
#3388870
Du brauchst 6 ineinander veschachtelte Schleifen, jede kümmert sich um ein anderes Element im Array, alle schleifen laufen von 0..255. Aber Du möchtest so ein Programm nicht wirklich laufen lassen ;-) Versuch's mal mit kleineren Werten, z.B. alle Kombinationen von 0, 0, 0, 0 bis 4, 4, 4, 4 - dann kommt das Programm auch zu einem Ende. doch will ich ;) hast du das als code?
default ist in C-Sprachen ein reservierter Begriff und kann nicht für Bezeichner verwendet werden. ich schrieb: > Vergleich mit 256 wird auch nicht funktionieren (255 ist die größe > 8bit-Zahl). int ist grösser als 8 Bit. Ansonsten: Überleg mal was du tust: default[0]=0; default[0]=1; default[0]=2; default[0]=3; . . . default[1]=0; default[1]=1; default[1]=2; default[1]=3; . . . usw.
Gast
#3388884
@ich Soviel Ahnung scheinst du aber auch nicht zu haben? @Stefan: Überlege dir doch mal, wie du dezimale Zahlen von 00 bis 99 zählen würdest. Wie ginge es von 000 bis 999? (Stichwort: Übertrag, fange von hinten an) (Oder 6 verschachtelte Schleifen, jede Schleife für eine Stelle, wenn du dann aber mal 16 Stellen haben willst, brauchst 16 Schleifen...) Wenn du 6 Zahlen in ein Array speichern willst, dann bitte auch Platz für 6 Zahlen schaffen.
Gast
#3388887
oder
danke :) Stefan Anderson schrieb: > doch will ich ;) hast du das als code? Bevor du das als Code kriegst rechne aus wieviel 256 hoch 6 ist und wie lange das dauert wenn du in 0,1µs einen Wert schreibst. Stefan Anderson schrieb: > doch will ich ;) hast du das als code? Das willst du garantiert nicht. Rechne mal ein bischen. es gibt 256^6 unterschiedliche Kombinationen (^ist 'hoch') das sind 281474976710656 Stück. Angenommen, nur mal angenommen, du könntest 1 Mio pro Sekunde durchspielen (was du höchst wahrscheinlich nicht kannst), wie lange dauert das? 281474976710656 / 1000000 = 281474976.7106 Sekunden 281474976 Sekunden sind 281474976/60 = 4691249.6 Minuten 4691249 Minuten sind 4691249/60 = 78187 Stunden 78187 Stunden sind 78187 / 24 = 3257 Tage 3257 Tage sind 3257 / 365 = 8.9 Jahre Immer noch sicher, dass du das willst?
Gast
#3388910
Ganz so schlimm ist es nicht. Ein nicht mehr ganz aktueller Rechner braucht für Peters Variante für alle Kombinationen der 6 Bytes knappe 12 Tage. 4 Bytes werden in etwa 15 Sekunden durch gezählt, also etwa 300 Millionen pro Sekunde. Wenn dann pro Kombination noch etwas gemacht werden soll, dann wird die Zeit natürlich gleich viel länger... Ingo P. schrieb: > Wenn dann pro Kombination noch etwas gemacht werden soll, > dann wird die Zeit natürlich gleich viel länger... :-) Warum nur musste ich bei den Variablennamen 'Key' und 'Code' an einen naiven COdeknacker denken, der einfach alle Kombinationen durchprobiert. Jetzt weiss der TO auch, warum sowas in der Praxis nicht wirklich funktioniert. Ganz abgesehen davon, dass jedes 'Schloss', das etwas auf sich hält, nach ein paar Fehlversuchen erst mal ein längeres Päuschen einlegen wird. Also habe es mit einer Mifar (NFC/RFID) Karte Probiert, diese macht keine Pause. Brauche für 1 Kombi ca 0.00278 sec Stefan Anderson schrieb: > Brauche für 1 Kombi ca 0.00278 sec OK, also kannst du alle Zahlen mindestens mal 2000 nehmen. Ich habe meine Zeitschätzung auf 1 Mio Versuche pro Sekunde basiert. Du schaffst aber keine 1 Mio. Du schaffst gerade mal 500. D.h. du landest bei rund 17-tausend Jahren. Antwort schreibenBitte melde dich an, um einen Beitrag zu schreiben. |
Anzeige
|