Problem: automatische Namenszuweisung aus Array
-
okok... sorry^^
habe vorher php programmiert und da war "größer als" >> und nicht >....
--.--
und wie könnte ich das dann lösen?
hat jemand vllt einen kleinen ansatz?

-
Vielleicht solltest du dir mal klar machen, WAS du überhaupt lösen willst
(aus deinem Beitrag und dem obigen Quelltext geht das nicht wirklich hervor)
-
Das weiß ich bereits

Also, ich möchte eine Verschlüsselungsmethode programmieren.
sie funktioniert nach diesem Muster:
man hat ein quadrat aus den buchstaben ( ich nahm noch sonderzeichen hinzu)
beispiel:
a b c d e f
b c d e f a
c d e f a b
d e f a b c
e f a b c d
f a b c d e( das jetz mal im kleinen rahmen ( der ganze zeichensatz der verwendet wird muss nach diesem system eingetragen werde))
(Das is das, was ich versuchte, ich wollte die zeilen alle einzeln automatisch erstellen lassen um mir sehr viel schreibarbeit zu ersparen)
das system funktionier dann folgendermaßen:
man hat den text, welchen man verschlüsseln will ( meinetwegen "daffadabcdfe")
und ein passwort ( bsp.weise : "bbeff").
das ganze erfolgt nun buchstabe für buchstabe:
1. man such den buchstaben auf der linken seite ( im beispiel "d", reihe 4 also)
2. in der reihe in der der buchstabe am linken rand steht geht man bis zum äquivalenten buchstaben des passworts ( gleiche zahl, hier also "b", also spalte 5)
3. nun sucht man in der ersten zeile und hat so seinen buchstaben, der codiert ist ( hier also "e")somit kommt ein total zufälliger text heraus.
das ist auch der grund, warum ich das system hier erkläre
egal wie, wenn es geht dieses system ohne pw zu knacken, bräuchte man jahre dafür 
ich denke, jetz könnt ihr mir bessa helfen?!

greetz hokage
edit: um hier nochma auf den edit von simon2 zu kommen:
mein programm soll also ( in dem teil, den ich hier vorhin gepostet habe ) die arrays alle selbst erstellen ( name + inhalt). das scheint aber wohl nicht so zu funktionieren wie ich mir das vorstellte
mh, da steht mir wohl einige schreibarbeit bevor,..aber ich denke, dass die verschlüsslung an sich ( per zuweisung pro buchstabe nach dem obigen system ) kein problem sein sollte... nur dieses schreiben wollte ich mir ersparen
-
Das sieht irgendwie nach Vigenere-Chiffre aus (keine Ahnung, ob das richtig geschrieben ist). Und um das zu lösen, kannst du in einer Schleife die einzelnen Zeichen überschreiben:
const string al=...; string text = "ich bin ein test", passwort="hokage",code; for(int i=0;i<name.length();++i) { int iorg = al.find(text[i]);//Index des Textzeichens int ikey = al.find(passwort[i%passwort.length()]);//Index des Schlüsselzeichens code.push_back(al[(iorg+ikey)%al-length()]); }PS: Aber unknackbar ist dieses Verfahren nur, wenn der Schlüssel (a) genauso lang ist wie der Ausgangstext, (b) echt zufällig gewählt und (c) nur ein einziges Mal verwendet wird. Alles andere bietet noch Angriffspunkte zur Entschlüsselung.
-
okok ich glaub das is noch ein wenig hoch für mich....
mh, könntest du mir vllt noch ein bissel genauer erklären was dort passiert???
zeile 5,6,7 sind es die mir schwierigkeiten machen

aber scho ma danke für die schnelle hilfe

-
Hmm hab das was du willst jetzt so verstanden, das du den Array einfach soweit rotieren willst bis der Buchstabe ganz vorne ist ... dann guckst welcher jetzt an der alten pos ist?
"5"
123456
561234
=> "3" ?
Oder wie jetzt ^^
-
Hi,
also ich finde strchr() da nicht so prickelnd. Warum nichtdas (IMO deutlich sprechendere) find ?
Ich hätte jedenfalls erwartet:const string al="abcdefg"; string text = "ich bin ein test", passwort="hokage",code; for(int i=0;i<name.length();++i) { size_t iorg = al.find(text[i]); //Index des Textzeichens size_t ikey = al.find(passwort[i%passwort.length()]));//Index des Schlüsselzeichens code += al[(iorg+ikey)%al.length()]; // push_back() geht natürlich auch, aber += ist für C++-Anfänger etwas sprechender }Wen man Spaß hätte, könnte man das auch bestimmt in transform() reinpulen, aber das ist wohl übertriebene StandLib-Liebe
...Gruß,
Simon2.
-
Simon2 schrieb:
also ich finde strchr() da nicht so prickelnd. Warum nichtdas (IMO deutlich sprechendere) find ?
Weil ich angefangen hatte mit dem 'char al[]=...' aus dem Origninalcode und im Verlauf des Schreibens dann umgestellt habe auf string - da hatte ich wohl vergessen, die strchr-Aufrufe anzupassen

-
Ah ! OK !
Gruß,
Simon2.
-
ok!
ich glaub so langsame hab ichs raus

danke nochma für die viele und schnelle hilfe
