Verschlüsselung per Matrix
-
hallo
Herrschaften bin doch noch ganz frisch im berecih c++ habe es jetzt in der schule muss doch erst da rein kommen bevor ich so was erstellen kann das soll ja nicht so grosses sein..
danke noch mals
hakan
-
Wie wäre es, wenn Du es mal mit einem Progrämmchen probierst so ala:
char text[16]; char mat[4][4]; int i=0,j=0,z=0; ... for (i...) for (j...) { mat[i][j]=text[z]; z++ }
ups, da ist det Text ja schon fast in der Matrix, die fehlenden Bereiche solltest Du selbst füllen können.
-
irgendwie ergibt es doch garkeinen sinn, den text erst in eine matrix (oder 2 dimensionales array) einzulesen.
-
Wieso?
-
Ich hab deine Aufgabe jetzt gemacht, allerdings ohne in eine Matrix einzulesen.
#include <iostream> #include <string> std::string MatrixCrypt4x4(std::string& plainText) { std::string cryptedText; for(int i = 0; i < 4; ++i) { for(int j = 0; j < 4; ++j) { unsigned int index = j * 4 + i; if(index >= plainText.size()) { cryptedText += "*"; } else { cryptedText += plainText[index]; } } } return cryptedText; } int main() { std::string plainText = "Demonstration"; std::cout << MatrixCrypt4x4(plainText); }
-
Weil das nur festgelegte Vertauschungsregeln innerhalb eines 16er Blockes sind. 2 <-> 5, 3 <-> 9, 4 <-> 13, 7 <-> 10, 8 <-> 14, 12 <-> 15. Das wars schon. Die 4 nicht von den Vertauschungen erfassten Zeichen (1, 6, 11, 16) bleiben an Ort und Stelle. Eine Mega-Verschlüsselung ist das nicht gerade, aber für ein Schulprojekt reichts vielleicht noch gerade so.
-
Ok, ergibt auch die Lösung.
Ich habe in dem Bsp. es in eine Matrix geschrieben, da es so in der Aufgabenstellung stand.
Außerdem soll Hakan auch etwas selber machen, da er es sonst nicht lernt.
-
jungs es ist sehr nett von euch das ihr mir geholfen habt aber kann mann das ganze auch so machen min cin >> wo ich den text auch eingebe....?
-
Klar geht das, wo liegt das Problem dabei?
mfg
v R
-
hmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm
-
pass aber auf, das nicht mehr als 16 zeichen eingelesen werden.
std::string plainText; std::cin >> plainText; std::cout << MatrixCrypt4x4(plainText);
-
leute ich bin gerade im unterricht und brauche eine dringende hilfe kann mir einer auf die schnelle den Verschlüsseltetext auf bauenso das das word "Demonstraton" nach der 4 buchstabe in die neue zeile springt..?
danke im voraus
-
Hast Du dich mal überhaupt mit C/C++ beschäftigt?
char text[]="Demonstration"; int pos=0; while(pos<16) { cout<<text[pos]; if(((pos%4)==0) && (pos>0)) cout<<endl; pos++ } cout<<endl;
-
bin nicht c++ kind kann aber sehr gut vb
-
hmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm
was soll ich da jetzt machen
-
VB ist aber Krampf.
-
du warum funktioniert dein quellcode nicht
-
zeigt dauernd fehler
-
schaumal ich habe diesen quellcode und wo zwischen muss deins...?
#include <iostream>
#include <string>std::string MatrixCrypt4x4(std::string& plainText)
{
std::string cryptedText;
for(int i = 0; i < 4; ++i)
{
for(int j = 0; j < 4; ++j)
{
unsigned int index = j * 4 + i;if(index >= plainText.size() )
{
cryptedText+= "*";
}
else
{
cryptedText += plainText[index];
}
}
}return cryptedText;
}int main()
{
std::string plainText;
std::cin >> plainText;
std::cout << std::endl;std::cout << MatrixCrypt4x4(plainText);
std::cout << "\n";
}
-
Was für Fehler gibt er denn aus?