Moin Moin.
Ich habe letzte Woche eine Anfrage gestellt, wie viel Festangestellte und Auszubildende in 2021 prozentual eingestellt wurden.
Was bekomme ich zur Antwort: 2,3% Festangestellte, 1,4% Auszubildende, in DK 4,2% und in D 2,5%.
Kürzer geht es nicht? Ich bin echt sauer.
Wieviel Festangestellten wares es prozentual in DK bzw. D getrennt und dann die gleiche Frage mit den Auszubildenen.
Das bedeutet wieder ab an die weiße Tafel und versuchen Dank Algebra die Fehlenden Prozentangaben zu lösen.
Algebra, kann man das "Scripten". Wenn da a + b = c steht sind des einfach mathematische Grundrechnung. Aber wie sieht es bei:
2ab + c-d+2cb? Ich glaube schon daas es möglich ist, weiles es für Algebra feste Vorgaben gibt. Algebra = rechnen mit Variablen.
So, jetzt muss ich mal sehen, das ich irgendwie diese Zahlen raus bekomme. Seit gestern 19:00 Uhr ist bis Anfang 2022 keiner da
der Daten raus geben kann und ich muss bis 6.1.21. Ich komme ohne diese Daten nicht weiter.
Becher oder gleich einen Pott (sehr großer Becher heißt so bei uns) Brommbeertee mit Zucker, Musik lautert und dann am Whiteboard
den Stift schwingen. Sind nur noch fünf Mitarbeiter im Haus. Ich kann das am PC sehen.
Einen schönen Abend und vielleicht bis spääääääääter.
Die Lina.
Formel noch nicht gefunden : Ich liebe Menschen die nicht einmal für eine Krone mit denken (mitdenken ?) !
-
-
Das wirst du mit den Informationen nicht ausrechnen können. Du kennst das verhältnis von F vs A in DK und D ja nicht...
Kann ja sein, dass alle A in DK waren und F verteilt oder so.
-
Da kann man gleich als Antwort 42 schicken....
-
Moin zusammen.
Ich habe Dank Algebra die Zahlenheraus bekommen.
@Kanashius genau das war es ja, was ich ausrechnen musste.
Formel:
a+b+a+c+b+d+c-d = 10,4
dann Kürzung:
2(a+b+c) = wa+b+c= w/2 = 10,4/2 = 5,2
c=5,2-(a+b)
a=4,2-cb=2,3-a
d=c-1,4
somit:a=1,3
b=1,0
c=2,9
d=1,5
Und das ganze werde ich aber noch mal morgen überprüfen. Muss eh um 8:00 Uhr in Sonderburg sein und dann muss ich die Daten selber noch mal raus suchen.
Aber ich habe das ganze einmal mit den Daten vom Letzten DK Abschluss durchgerechnet und habe so auch die richtigen Daten bekommen.
Algebra ist zwar nicht ganz so meine Länge, aber bei nur vier Unbekannten und fünf Vorgaben geht es noch leicht. -
Alina
1. Januar 2022 um 23:16 Hat den Titel des Themas von „Ich liebe Menschen die für eine Krone mit denken (mitdenken ?) !“ zu „erledigt & gelöst : Ich liebe Menschen die nicht einmal für eine Krone mit denken (mitdenken ?) !“ geändert. -
Hey Alina!
Da ich auch immer gerne bei meinen (oft sehr eingeschränkten) Fremdsprachen verbessert werde, nur der Hinweis:
Mitdenken wird zusammengeschrieben.
Ist das in Dänemark anders? Google übersetzt mir in dänisch "tænke med", also 2 Wörter.
Vielleicht schaffe ich es in diesem Jahr mal im Sommer nach DK....dann melde ich mich auch bei dir, ich brauche dann sicher eine Ferienwohnung!
-
Moin Andy.
Okay, das mit dem mitdenken" ist aufgenommen.
Ja, in Dänemark sagt man "denke mit", also so wie Du auch schreibst: "tænke med".
Wo in Dänemark möchtest Du denn Urlaub machen? Könnte Dir sonst auch paar gute Orte nennen.
Was möchtest Du in Dänemark machen? Mit Kindern Legoland und solche Sachen oder Mee-r und
Dünenleben? -
So, heute nach Sonderburg gefahren und mal siehe da, meine Berechnungen mit Algebra waren richtig.
Naja, vier unbekannte Werte ausrechnen bei fünf bekannten Angaben (eine muss man kurz berechnen)
ist nicht so schnell gemacht. Bin ja nun auch schon laaaaaange aus der Schule raus.Formel:
a+b+a+c+b+d+c-d = 10,4dann Kürzung:
2(a+b+c) = wa+b+c= w/2 = 10,4/2 = 5,2
c=5,2-(a+b)
a=4,2-cb=2,3-a
d=c-1,4somit:
a=1,3
b=1,0
c=2,9
d=1,5
-
Hey Alina!
Wo in Dänemark möchtest Du denn Urlaub machen?
...da wo es schön ist :o)
Ich liebe es, Land und Leute kennenzulernen. Ich bin nicht der typische "Touri". Lieber bei Einheimischen wohnen, mit ihnen Essen und Trinken und gemütlich entspannen.
Daher verlasse ich mich auch nicht auf einen Reiseführer, in dem drin steht, wo es "schön" ist, sondern ich frage die Leute die dort wohnen/leben. In diesem Fall DICH
-
Hast Du Kinder und wenn, wie alt/jung sind sie?
Ich liebe die Landeshauptstadt und das Gebiet nördlich. Langer Strand zum Spazieren gehen wenn ich Ruhe haben möchte. Stadt mit sehr vielem was man erleben und immer gerne wider erleben kann und man lernt sehr schnell neue Leute kennen. Und wundere dich nicht so, wieviele Deutsch können bzw. so sprechen das man sich mit ihnen unterhalten kann.
Ferienhäuser und Strand? Das wäre die Westseite. Nordseeseite.
Deutsch dänischer Grenzbereich. Sonderburg und das gesamte nördliche Gebiet der Insel. Schöne Radstrecken zum Beispiel nach Flensborg am Fjord (Förde) entlang.
Und sogar für pupertierende (?) Männer auf zwei Rädern gibt es Feriengebiete wo sie über Kilometer mal zeigen können was ihre "Kisten" bringen, ohne gleich dafür belangt zu werden. Ohne Absperrung und so.
Also was magst Du / Ihr gerne?Wenn ich weiß wann die Reise ist und ich es beruflich planen kann, kann man sich auf ein Kaffee gerne Treffen. Wärst der Zweite aus dem Forum.
-
Und sogar für pupertierende (?) Männer auf zwei Rädern gibt es Feriengebiete wo sie über Kilometer mal zeigen können was ihre "Kisten" bringen, ohne gleich dafür belangt zu werden. Ohne Absperrung und so.
Aua, das tut weh
Bin zwar nicht mehr pupaertierend, fahre aber leidenschaftlich gerne Motorrad....und irgendwann schaffe ich auch meine Nordcup-Tour!lg
Racer
-
und irgendwann schaffe ich auch meine Nordcup-Tour!
Zieh dich warm an. Am Cup ist es eiskalt. Ach nee, das war der Nordpooooool.
-
Ich versuche immer noch eine Formel zu lösen !
Was haben?
1.) 4 Unbekannte
A BC D
2.) Folgende Aussagen:A - B = 2
C + D = 8A + C = 10
B + D = 6
3.) ergibt:
A-B+C+C+A+C+B+Dgekürzt: 2A-B+2C+B+D
4.) -B+B hebt sich auf und so bleibt noch
2A+2C+2D
5.) 2A+2C+2D die Sumem aus 2.) also
2A+2C+2D = 2+8+10+6
2A+2C+2D = 266.) A+C+D = 13
7.) aus 2.) wissen wir, das A+C = 10 ist. Somit
D = 13-(A+C)D = 13-10
D = 3
8.) die restlichen Werte
C = 8-D = 5
B = 6 - D = 3A = 2 + B = 5
Und jetzt kommt es?
=================
Wie setze ich das ganze mit AutoIt um ?
Tausend Bäume, aber kein Licht in Sicht.
Bin mal auf Rükmeldungen gespannt. Auf dem Papier sind die Werte ja berechnenbar. -
Alina
23. Februar 2022 um 19:13 Hat den Titel des Themas von „erledigt & gelöst : Ich liebe Menschen die nicht einmal für eine Krone mit denken (mitdenken ?) !“ zu „Formel noch nicht gefunden : Ich liebe Menschen die nicht einmal für eine Krone mit denken (mitdenken ?) !“ geändert. -
Wie setze ich das ganze mit AutoIt um ?
Nun was genau haben wir hier genau?
Es handelt sich bei der Aufgabe um ein lineares (nur Addition und Subtraktion), bestimmtes (genauso viel Gleichungen wie Unbekannte) Gleichungssystem.Um soetwas effizient und dynamisch mit einem Computer zu berechnen bietet es sich an das Problem aus Sicht der linearen Algebra (Vektor- und Matrizenrechnung) zu betrachten.
Schauen wir uns die Sache mal genauer an. Wir haben folgendes Gleichungssystem:
In Matrizenform geschrieben sieht dieses System folgendermaßen aus (optischer Vergleich zu oben beachten - dann wird das System klarer):
Code┌ ┐ ┌ ┐ ┌ ┐ │ 1 -1 0 0 │ │ A │ │ 2 │ │ 0 0 1 1 │ · │ B │ = │ 8 │ │ 1 0 1 0 │ │ C │ │ 10 │ │ 0 1 0 1 │ │ D │ │ 6 │ └ ┘ └ ┘ └ ┘
Oder um es allgemeiner und kürzer zu schreiben: A · x = b
Im Grunde geht es jetzt so weiter wie man es aus der Schule kennt; Man muss die Gleichung nach x umstellen.
Das sieht in der Grundform im Grunde exakt so aus wie in der skalaren Algebra - nämlich: x = A-1·b
Im Grunde also einfach - nur was ist A-1?
Das ist die sogenannte Inverse der Matrix A. Diese zu berechnen ist etwas eklig aber blöderweise genau das was wir noch zur Lösung brauchen.
Ich habe mal geschaut und gestaunt, dass ich selbst noch keine Funktion hierfür vorliegen hatte.
Im Englischen Forum habe ich dann zwei Funktionen gefunden die entweder falsche Ergebnisse liefern oder mit Fehler abstürzen.
Die völlig übertriebene Eigen4AutoIt-Geschichte habe ich gar nicht erst angesehen.
Stattdessen habe ich daher nun schnell eine Inversionsfunktion dahingerotzt. Warum betone ich das so? - die Funktion ist wirklich nur dahingeschludert und nicht auf alle Fälle hin getestet. Für diesen Fall hier bringt es erst einmal die richtigen Ergebnisse und zu Anschauungszwecken reicht es erst einmal - aber sauber ist sie eventuell noch nicht.
Kurz - in AutoIt würde man dies z.B. folgendermaßen umsetzen:
AutoIt
Alles anzeigen#include <Array.au3> ; Grundgleichung A·x = b ; Gesucht: Parametervektor x ; Gleichung nach x umgestellt: x = A^-1 · b ; "A^-1" = "Inverse" der Matrix A ; Lösungsvektor b Global $b[] = [2, 8, 10, 6] ; A-Matrix: A B C D Global $A[][] = [ [1, -1, 0, 0], _ [0, 0, 1, 1], _ [1, 0, 1, 0], _ [0, 1, 0, 1]] ; Inverse A^-1 von A $A_Inv = _MatrixInverse($A) ; Parametervektor x = A · b $x = _MatrixVectorProduct($A_Inv, $b) _ArrayDisplay($x, "Ergebnis") Func _MatrixVectorProduct($A, $b) Local $nRows = UBound($A, 1), $nCols = UBound($A, 2) If UBound($A, 0) <> 2 Or UBound($b, 0) <> 1 Then Return SetError(1,0, Null) If $nCols <> UBound($b) Then Return SetError(2, 0, Null) Local $aP[$nRows] For $i = 0 To $nRows -1 For $j = 0 To $nCols -1 $aP[$i] += $A[$i][$j] * $b[$j] Next Next Return $aP EndFunc Func _MatrixInverse(ByRef $M) Local $N = UBound($M, 1) Local $A = $M Local $B[$N][$N] For $i = 0 To $N -1 $B[$i][$i] = 1 Next Local $p, $t, $f For $j = 0 To $N - 1 $p = $j While $p <= $N And $A[$p][$j] = 0 $p += 1 WEnd If $p = $n +1 Then Return SetError(1,0,Null) If $p <> $j Then For $i = 0 To $N -1 $t = $A[$j][$i] $A[$j][$i] = $A[$p][$i] $A[$p][$i] = $t $t = $B[$j][$i] $B[$j][$i] = $B[$p][$i] $B[$p][$i] = $t Next EndIf $f = $A[$j][$j] For $i = 0 To $N -1 $A[$j][$i] /= $f $B[$j][$i] /= $f Next For $i = 0 To $N - 1 If $i <> $j Then $f = $A[$i][$j] For $x = 0 To $N -1 $A[$i][$x] -= $f * $A[$j][$x] $B[$i][$x] -= $f * $B[$j][$x] Next EndIf Next Next Return $B EndFunc
-
Hallo Alina, hast du bei 3. nicht einen Fehler?Zitat3.) ergibt:A-B+C+C+A+C+B+Dgekürzt: 2A-B+2C+B+Ddas gekürzte stimmt nicht, da du 3* +C hast. Also (B mal schon weggekürzt): 2A+3C+DSiehe Kommentar #16
-
Hi,
lineare Gleichungen lösen....da hatte ich vor Jahrzehnten mal was gebastelt, sogar mit GUI^^
Seitdem wird dieses Script immer wieder mal von mir benutzt, wer Spass hat, kann ja die GUI auf "schön" umfunktionieren.
Und btw. es wird das Gaußsche Eliminationsverfahren verwendet.
AutoIt
Alles anzeigen#include <GUIConstantsEx.au3> ;~ ;linearer gleichungslöser nach Gaußschem Eliminationsverfahren, #include <array.au3> ;~ $n = 3 ;~ Dim $a[$n][$n] = [[1, 1, 0],[0, 1, 1],[1, 0, 1]] ;matrix ;~ Dim $b[$n] = [100, 200, 240] ;lösungen ;~ ;$n = 4 ;~ ;Dim $a[$n][$n] = [[1, 3, -2, 1],[-2, 1, -4, -5],[1, -3, 1, 0],[-3, 4, -6, 2]] ;matrix ;~ ;Dim $b[$n] = [-7, -6, 6, -21] ;lösungen ;~ $s = _solve_linear_quad($a, $b) ;~ _ArrayDisplay($s) Global $num_unknowns = Number(InputBox("Lösung Lineare Gleichungssysteme", "Anzahl Unbekannte?", 3)) Dim $coeff[$num_unknowns][$num_unknowns] ;matrix Dim $values[$num_unknowns + 1][$num_unknowns + 2] ; Dim $b[$num_unknowns] ;lösungen GUICreate("Enter Equations:", (48 * $num_unknowns) + 121, (26 * $num_unknowns) + 77) For $n = 1 To $num_unknowns For $r = 1 To $num_unknowns $values[$n][$r] = GUICtrlCreateInput("", 48 * $r, 26 * $n, 25, 21) GUICtrlCreateLabel(StringMid("abcdefghijklmnopqrstuvwxyz", $r, 1), (48 * $r) + 26, (26 * $n) + 5, 10, 17) If $r < $num_unknowns Then GUICtrlCreateLabel("+", (48 * $r) + 37, (26 * $n) + 5, 10, 17) Else GUICtrlCreateLabel("=", (48 * $r) + 37, (26 * $n) + 5, 10, 17) EndIf Next $values[$n][$r] = GUICtrlCreateInput("", 48 * $r, 26 * $n, 25, 21) Next $solve_button = GUICtrlCreateButton("Lösen", (48 * $num_unknowns) + 38, (26 * $num_unknowns) + 36, 50, 25) GUISetState() While 1 $msg = GUIGetMsg() Switch $msg Case $GUI_EVENT_CLOSE ExitLoop Case $solve_button For $n = 0 To $num_unknowns - 1 For $r = 0 To $num_unknowns - 1 $coeff[$n][$r] = Number(GUICtrlRead($values[$n + 1][$r + 1])) Next $b[$n] = Number(GUICtrlRead($values[$n + 1][$num_unknowns + 1])) Next ;~ _arraydisplay($b) ;~ _arraydisplay($coeff) GUISetState(@SW_HIDE) $sols = _solve_linear_quad($coeff, $b) ConsoleWrite('@@ Debug(' & @ScriptLineNumber & ') : $sols = ' & $sols & @CRLF & '>Error code: ' & @error & @CRLF) ;### Debug Console $solutWin = GUICreate("Lösungen:", 280, (21 * UBound($sols)) + 42) For $n = 0 To UBound($sols) - 1 GUICtrlCreateLabel(StringMid("abcdefghijklmnopqrstuvwxyz", $n + 1, 1) & " = " & Round($sols[$n], 3) & " (Max. 3 Nachkommastellen)", 30, 21 * ($n + 1), 200, 20) Next GUISetState(@SW_SHOW, $solutWin) EndSwitch WEnd Func _solve_linear_quad($a, $b) ;matrix,lösung Gaußsches Eliminationsverfahren, löst x gleichungen mit x unbekannten ;by Andy www.autoit.de Local $n, $t Dim $Y[UBound($b)] ;ergebnisse $n = UBound($a) - 1 ;anzahl der zeilen/spalten ;falls erforderlich, zeilen und spalten tauschen If $a[0][0] = 0 Then ;wenn erster koeffizient = 0, dann kann das system nicht starten => spalten tauschen ggf zeilen tauschen For $k = 0 To $n ;jede zeile For $j = 0 To $n ;alle spalten in dieser Zeile testen If $a[$k][$j] <> 0 Then For $m = 0 To $n ;treffer, die erste spalte mit der j. tauschen $t = $a[$m][$j] ;sichern $a[$m][$j] = $a[$m][0] ;mit erster spalte tauschen $a[$m][0] = $t Next For $j = 0 To $n ;zeilen tauschen $t = $a[0][$j] ;sichern $a[0][$j] = $a[$k][$j] ;mit erster spalte tauschen $a[$k][$j] = $t Next $t = $b[0] ;ergebnisse auch tauschen $b[0] = $b[$k] $b[$k] = $t ExitLoop 2 EndIf Next Next EndIf If $a[0][0] = 0 Then Return SetError(1, 0, 1) ;endlich rechnen :) For $I = 0 To $n ;alle zeilen If $a[$I][$I] <> 0 Then ;erstes element auf 1 bringen indem man gesamte zeile durch erstes Element teilt For $k = $I To $n $t = $a[$k][$I] ;erstes element merken If $t <> 0 Then ;nur, wenn das erste element ungleich null ist... For $j = $I To $n $a[$k][$j] /= $t ;alle zeilenmitglieder durch erstes element teilen Next ;b durch i teilen $b[$k] /= $t ;ergebnis natürlich auch EndIf Next ; _ArrayDisplay($a, "oben " & $I) ;zeile i von allen weiteren zeilen subtrahieren, erstes element wird zu 0 For $k = $I + 1 To $n If $a[$k][$I] <> 0 Then ;wenn null, dann überspringen For $j = $I To $n $a[$k][$j] -= $a[$I][$j] ;die i.zeile von der aktuellen zeile subtrahieren Next $b[$k] -= $b[$I] ;ergebnisse natürlich auch EndIf Next ; _ArrayDisplay($a, "unten " & $I) Else ;null in aktueller spalte ;zeilen tauschen ; msgbox(0,$i,"null gefunden") For $k = $I + 1 To $n If $a[$k][$I] <> 0 Then ;zeile tauschen For $j = $I To $n ;zeilen tauschen $t = $a[$I][$j] ;sichern $a[$I][$j] = $a[$k][$j] ;mit erster spalte tauschen $a[$k][$j] = $t Next $t = $b[$I] ;ergebnisse auch tauschen $b[$I] = $b[$k] $b[$k] = $t EndIf ;erstes element auf 1 bringen indem man gesamte zeile durch erstes Element teilt For $k = $I To $n $t = $a[$k][$I] ;erstes element merken If $t <> 0 Then ;nur, wenn das erste element ungleich null ist... For $j = $I To $n $a[$k][$j] /= $t ;alle zeilenmitglieder durch erstes element teilen Next ;b durch i teilen $b[$k] /= $t ;ergebnis natürlich auch EndIf Next ; _ArrayDisplay($a, "oben1 " & $I) ;zeile i von allen weiteren zeilen subtrahieren, erstes element wird zu 0 For $k = $I + 1 To $n If $a[$k][$I] <> 0 Then ;wenn null, dann überspringen For $j = $I To $n $a[$k][$j] -= $a[$I][$j] ;die i.zeile von der aktuellen zeile subtrahieren Next $b[$k] -= $b[$I] ;ergebnisse natürlich auch EndIf Next ;_ArrayDisplay($a, "unten1 " & $I) Next EndIf Next ;alle parameter bestimmen durch rückwärtseinsetzen $Y[$n] = $b[$n] ;letzter ist bereits bekannt For $I = $n - 1 To 0 Step -1 For $j = $n To $I + 1 Step -1 $b[$I] -= $a[$I][$j] * $Y[$j] Next $Y[$I] = $b[$I] Next Return $Y EndFunc ;==>_solve_linear_quad Exit
-
Und bei 4. erfindest du ein 2. D hinOk, ich habe nun geshen du hast dich bei 3. verschrieben XD einmal C anstatt D, dann passt wieder alles
-
Danke für Eure Antworten.
Habe mir von AspirinJunkie und Andy die Beiträge mal genau angesehen.
Ja, ich dachte ich komme an Algebra vorbei, denn das in AutoIt umzusetzen ist ja wie o. g. von AspirilJunkie u. Andy ein Aufwand den ich noch nicht ganz nachvollziehen kann.
Ich habe versucht eine eigene Formel zu erstellen:
- ich habe vier Ergebnisse mit den Werten 2,8,10 und 6- nun addiere ich diese und komme ich auf 26 für 2a+2b+2d
- um a+c+d = 13 zu bekommen muss ich beide Seiten durch zwei teilen
- ich weiß ja das a+c=10 also: 10+d=13
- da d auf eine Seite muss: 10+d-10 = 13-10
- d=3
Also meine erstellte Formel wäre dann:(Ergebniss1 + Ergebniss2 + Ergebniss3 + Ergebniss4) / 2 - Ergebniss3
(2+8+10+6)/2-10 = 3
IRRE ich mich bei der Formel oder nicht? Sie arbeitet sowohl mit pos. als auch mit neg. Ergebnisse.
Ich habe es mit ca. 20 Zahlenkombinationen ausprobiert und habe die richtigen Zahl(en) herausbekommen.
Ich brauche die Lösung für dieses Problem, da ich etwas größeres vorhabe. Ich möchte was codieren.
Klartext: Passwort
Codiert 1: 2072674714768072Den Code sollte man nämlich nicht so einfach "knacken" können. Oder? Und wenn, dann habe ich noch eine zweite "Stufe", wie man
den Code noch "komplezierter" machen kann und ihn nicht im Kopf löst. Dann sieht die Codierung von PASSWORT dann so aus
4200674776-068072 oder so 4272-054776761072 oder so 427267-25767680-10.
Wenn bis hierhin jetzt alles Okay, kann ich mich da ran machen und das Tool das ich machen möchte zu starten. Wird nicht leicht. -
Ja, ich dachte ich komme an Algebra vorbei, denn das in AutoIt umzusetzen ist ja wie o. g. von AspirilJunkie u. Andy ein Aufwand den ich noch nicht ganz nachvollziehen kann.
Das was AspirinJunkie und ich als Scripte gezeigt haben ist ein mathematisches Verfahren zur Lösung linearer Gleichungen. Also Stoff aus dem Mathe-Untericht 9. Klasse (auch in Dänemark^^)
Wenn du x Gleichungen mit x Unbekannten hast, dann ist dieses System IMMER lösbar!
Ich habe versucht eine eigene Formel zu erstellen:
Was du nicht brauchst, denn wenn du x Gleichungen hast mit x Unbekannten, dann kannst du das auch lösen!
Ich brauche die Lösung für dieses Problem, da ich etwas größeres vorhabe. Ich möchte was codieren.
Klartext: Passwort
Codiert 1: 2072674714768072
Den Code sollte man nämlich nicht so einfach "knacken" können. Oder?Wenn du auf der Grundlage linearer Gleichungen eine "Verschlüsselung" machen willst, bekommst du definitiv Probleme bei der Sicherheit, wenn du "normale" Zahlen verwendest.
Das Problem ist, dass du anhand des Ergebnisses IMMER die Faktoren bestimmen kannst!
Um dein Gleichungssystem und deine Verschlüsselung zu "knacken" brauchst du also nur eine bestimmte Anzahl Klartexte und die daraus kodierten Passwörter.
In der Kryptologie gibt es viele Verfahren die eben genau deswegen NICHT (so einfach) umkehrbar sind. Beispielsweise werden dort SEHR große Zahlen durch die Multiplikation von ebenfalls SEHR großen Primzahlen erzeugt. Umgekehrt dauert es auch mit heutigen Rechnern extrem lange, diese großen Zahlen wieder in ihre Primfaktoren zu zerlegen.
Aber ich glaube sowieso, dass du eher im Bereich einer kryptografischen HASHfunktion suchen solltest!
Eine HASHfunktion erzeugt aus einem Klartext einen entsprechenden Ausgabewert. Das gute an der Hashfunktion ist, dass selbst wenn sich in der Eingabe nur EIN BIT (!) ändert, sich der Ausgabewert komplett ändert. Man kann auch nie vom Ausgabewert auf den Eingabewert rückschließen bzw. diesen "einfach" berechnen. Beispiele sind MD4 oder MD5 oder SHA...die kennst du sicher oder hast schon mal etwas davon gehört!
Der Sinn ist, Passwörter NIE direkt abspeichern zu müssen, sondern NUR den Hashwert.
Wenn du also dein Passwort eingibst, dann wird daraus der Hashwert berechnet und NUR DER wird im Programm/Datenbank mit den Zugangsdaten abgeglichen.
Ein Hashwert ist in der Regel auch immer gleich lang, egal wie lang der Eingabewert ist! Man kann also nicht aus der Länge des Hashwertes auf die Länge des Passwortes schließen.
Ich selbst habe schon mehrere Hash-"Generatoren" geschrieben bzw. selbst ausgedacht und in Programmen eingesetzt, im Prinzip ist das nur Bitschieben- oder rotieren, bzw Bitmanipulation. Zusätzlich noch einige Bits "einstreuen" (ähnlich SALT) dann bist du fertig.
Wichtig ist nur, dass die Funktionen nicht umkehrbar sein dürfen! Und eine GUTE selbstgeschriebene (und für andere bis dato unbekannte) Hashfunktion ist immer besser als eine der bekannten, wie bspw. MD5 oder SHA-1!
-
Das Problem ist, dass du anhand des Ergebnisses IMMER die Faktoren bestimmen kannst!
Hallo Andy.
Erst einmal vielen Dank für die so ausführliche Antwort.
Aber ich bezeifel das die Faktoren bestimmt werden können. Wenn es für das "A" beim ABC und die Zahlen 0-9 insgesammt 36 Nummern gibt und dann kommen ja noch alle anderen Zeichen dazu, so dass es für das "A" dann auch dementsprechen viele Buchstaben gibt. Bei 2072674714768072 (=Passwort) ist das "S" beim ersten mal eine 67 und beim zweiten mal eine 47. Dann kommen noch dazu, das es darauf an kommt, wie mit den Zahlen "gespielt"t wird. Da gibt es auch vier möglichkeiten. Wenn es nur eine oder zwei Zahlen gibt, dann ist es an Hand der Häufigkeit der Buchstaben zu durchschauen. Du darfst mir gerne mal ein Text an Nachricht senden und ich "codiere" ihn. Dann kannst Du sehen, das es nicht machbar ist. Aber auch da könnte ich mir irren.
Ich glaube eher, das es an der Umsetzung des Tools Probleme gibt. Ich muss mal die AutoIt Foren durchsuchen für die einzelnen Schritte. Einfach ersetzen "A" = 123 geht ja nicht, wenn z. B. eine 12 schon als getauschte Zahl steht. Ich weiß, das kann ich lösen, indem ich das Ergebnis, evtl. temporär nur, erst einmal in eine neue Datei schreibe und es nicht im Originaltext 1:1 tausche.
Ich weiß, das wird lange dauern bis es fertig ist und ich werde wohl auch Hilfe brauchen, aber wenn ich mir was in den Kopf gesetzt habe, mache ich es meistens auch bis zum Ende. Aufgegeben wird bei mir erst, wenn ich nach etlichen Versuche und mit Hilfe andere nicht schaffe.