Zum Inhalt springen

Pizzacorgie28

Mitglieder
  • Gesamte Inhalte

    32
  • Benutzer seit

  • Letzter Besuch

Alle Inhalte von Pizzacorgie28

  1. ahhhhhh stimm dann haut das ja hin lul ja geil 🤪
  2. kannst du einmal reinschreiben was du meinst? " " ? oder ' ' die gehen nämlich nicht hatte das testweise versucht ohne erfolg veregesen das wieder zu ändern vor dem einfügen. oh sry key meinte ich einfach den key also 930901 so heufig hintereinander geschrieben bis array voll xD
  3. hmm gute frage selbst wenn ich den array komplett fülle kommt da ihrgentwie murx bei raus
  4. genau so hatte ich mir das auch vorgestellt aber ich weiß nicht so genau wie ich das umsetzte.
  5. Soooo ein wenig überarbeitet. allerdings spuckt er immer noch wirres zeug aus #include <stdio.h> #include <stdlib.h> #include <string.h> int main() { int i = 0; char eingabe[99] = "This is a test string"; char key[99] = '930901'; // Encryption key char output[99]; char decrypt[99]; size_t eingabelen = strlen(eingabe); size_t key_len = strlen(key); for (i = 0; i < eingabelen; i++) { output[i] = eingabe[i] ^ key[i % key_len]; // XOR verschlüsselung } printf("\noutput XORed: %s\n", output); for (i = 0; i < eingabelen; i++) { decrypt[i] = output[i] ^ key[i % key_len]; // XOR entschlüsselung } decrypt[i] = 0; // Zero terminate printf("Un XORed: %s\n\n", decrypt); printf("\n"); return 0; }
  6. das ist die frage 😂 die Eingabe wollte ich erst mal auf 100 Zeichen beschränken . und ja das aufjedenfall aber das speicherproblem gehe ich an wenn ich mehr in der Materie stecke 😅
  7. ok also kann den key ja in der theorie wiefolgt ändern. char key[99]="930901" somit habe ich den array auf max 99 zeichen erhöht oder nicht? Und somit kann key die eingabe welche auch max 99 zeichen hat erreichen. jetzt ist bloß die frage inwiefern ich key der eingabe anpasse. im endefekkt müsste ja das programm die länge von dem array der eingabe mit dem array des keys vergleichen und dementsprechnd verlängern oder nicht?
  8. ahhhhhhhhh dann kann das garnicht erst funktionieren haste recht. hmm aber jetzt so geändert ohne sichtliche änderung char *key[]="930901";//Verschlüsselungs Key
  9. Hmm hast du da vlt nen tipp komme da auf keinen grünen zweig for(i=0;i<strlen(eingabe);) { for(j=0;(j<strlen(key))&&(i<strlen(eingabe));j++) { numkey[i]=key[j]-'a'; i++; } } for(i=0;i<strlen(eingabe);i++) { numcipher[i]=numstr[i]+numkey[i]; } for(i=0;i<strlen(eingabe);i++) { if(numcipher[i]>25) { numcipher[i]=numcipher[i]-26; } } habe versucht damit den key an die eingabe anzupassen kommt aber auch nur murx raus
  10. Jo ich versuche mich mal dran also im Endeffekt ka maximal 100 Zeichne oder so hätte ich jetzt gesagt. Habe da keine speziellen Anforderungen mache ich grade nur Interesse halber noch nebenbei außerhalb der aufgaben. Der Rest läuft soweit dank euch 🤙
  11. ahhh ok macht sinn haste recht. hmmmm bloß wie passe ich den key jetzt dem wort an ? 🤔
  12. Moin leute, ich versuche grade den text welcher vom user eingegeben wird über xor zu verschlüsseln und wieder zu entschlüsseln mit einem vorgegebenen key. Der text wird zwar ver und auch endschlüsseld aber standig werdn kryptische zeichen hinzugefügt auserhalb der eingabe (siehe anhang eingabe war hallohallo). leider finde ich nicht den fehler hoffe einer von euch kann mir helfen . #include <stdio.h> #include <stdlib.h> #include <string.h> int main(){ int i = 0; char eingabe[99];//Text eingabe des Users char key[6]="930901";//Verschlüsselungs Key char output[99]; char decrypt[99]; printf("eingabe\n"); scanf(" %s", &eingabe); size_t eingabelen = strlen(eingabe); printf("strin=%d, von eingabelen\n",eingabelen); for(i = 0; i < eingabelen; i++) { output[i] = eingabe[i]^key[i]; //XOR verschlüsselung printf("\n%d",i); } printf("\noutput XORed: %s\n", output); //printf("\n"); for(i = 0; i < eingabelen; i++) { decrypt[i] = output[i]^key[i]; //XOR entschlüsselung } printf("Un XORed: %s\n\n", decrypt); printf("\n"); return 0; } Danke für euer Hilfe 🤘
  13. Danke nochmal für deine Erklärung bin ich nicht weiter drauf eingegangen sry also was ein zeiger ist ist mir zumindest schon klar . Allerdings ist das mit dem * echt bescheiden und finde ich persönlich auch mega hässlich finde das in C#bzw. c++ besser gelöst aber was will man machen . Aber das mit den [ ] habe ich bis jetzt tatsächlich noch nie verstanden dank dir 🤙
  14. sooooooooooooooo ich habe den code noch mal neu verfasst und diesesmal es etwas knapper gehalten. allerdings auch nicht ganz fehlerfrei. #include <stdio.h> #include <stdlib.h> #include <string.h> int main(){ int i = 0; char eingabe[99]; char key[6]="930913"; char output[13]; char decrypt[13]; printf("eingabe\n"); scanf(" %s", &eingabe); for(i = 0; i < 13; i++) { output[i] = eingabe[i]^key[i]; } printf("output XORed: %s\n\n", output); printf("\n"); for(i = 0; i < 13; i++) { decrypt[i] = output[i]^key[i]; } printf("Un XORed: %s\n\n", decrypt); printf("\n"); return 0; } ich kann zwar verschlüsseln und endschlüsseln bloß ist er momentan in der ascii Tabelle unterwegs und nicht binär wie ich es gerne hätte jetzt komm ich bloß nicht darauf wie ich ihn auf binär beschränken kann
  15. Nur um klar zu stellen bin ziemlicher Noob und habe bereits den ganzen tag damit verbracht die kacke da zu schreiben nur damit es nicht funktioniert 😅. Deswegen bin ich grade ein wenig am ende xD. Habe um ehrlich zu sein auch deine frage hier nicht ganz verstanden und was ich mir hierbei gedacht habe weiß ich auch grade nicht mehr wirklich key[i % keylen]. bin grade einfach komplett im Tunnel und frustriert.
  16. brauch ich die nicht? und der key soll jajedem buchstaben zugeordnet werden. z.b. h^913112=-80
  17. Moin Leute, ich versuche grade XOR Verschlüsselung / Symmetrische Verschlüsselung in C zu verwirklichen allerdings bis jetzt ohne viel Erfolg. Ich möchte das der User einen Text eingeben kann. Danach soll der User einen, 6 stelligen nummern, Key zum verschlüsseln angeben z.b. 930910. Daraufhin soll dann der Text mit dem Key zusammen durch XOR, verschlüsselt werden. Leider scheint was in der" char * xorencrypt(char * text, int * key) "etwas falsch zu laufen, da das Programm einfach beendet wird mit dem Error: Received signal :'Invalid Instruction'. Abort. #include <stdio.h> #include <stdlib.h> #include <string.h> char * xorencrypt(char * text, int * key) { size_t textlen = strlen(text); size_t keylen = strlen(key); char * encrypted = malloc(textlen+1); int i; for(i = 0; i < textlen; i++) { encrypted[i] = text[i] ^ key[i % keylen]; } encrypted[textlen] = '\0'; return encrypted; } int main(void) { char *text[99]; int *key=0; printf("Bitte Text eingeben:\n"); scanf("%99s",&text); printf("text=%s\n",text); printf("Bitte Key eingeben:\n"); scanf(" %d",&key); printf("key=%d\n",key); char * encrypted = xorencrypt(text, key); printf("%s\n", encrypted); //free(encrypted); return 0; } hoffe ihr könnt mir ein wenig weiter helfen sitze schon den ganzen tag dran und finde den Fehler einfach nicht. 🤯
  18. Hmmm schon geschaut aber finde da nix. stehe da grad echt auf dem schlauch 🙈 also wenn ich beim entschlüsseln anstatt -12 zu einer 14 mache kommt wieder der richtige wert raus was ja an sich auch korrekt ist aber irgendwie ein wenig geschummelt ist würde ich behaupten xD.
  19. Sag bloß 😂 ja ich soll für mein Studium solch ein Programm entwickeln bloß leider funktioniert das endschlüsseln nicht ganz richtig und finde meinen Fehler nicht.
  20. Moin leute, habe mich mal an die sicherste Verschlüsselungsmethode gewagt nur um jetzt festzustellen das ich was vergeigt habe. #include <stdio.h> #include <string.h> void caesar(unsigned char d[])//bytes ohne vor zeichen nur bis 255 { for (int i=0; d[i]; i++) { d[i] += 12;//verschlüsselungs weite if (d[i] > 'z') { d[i] += 'a' - 'z' - 1; } } } void caesarback(unsigned char d[])//bytes ohne vor zeichen nur bis 255 { for (int i=0; d[i]; i++) { d[i] += -12;//entschlüsselungs weite if (d[i] > 'z') { d[i] += 'a' - 'z' - 1; } } } char * stringToLower(char*); int main(void){ char verent=0, d[]="abcdefghijklmnopqrstuvwxyz";//alphabet //--Verschlüsselung-------------------------------- printf("wollen sie (1)ver oder (2) entschlüseln?"); do { printf("bitte geben sie 1 oder 2 ein\n"); scanf(" %c", &verent); } while (verent >'2'); if (verent == '1') { printf("Verschlüsselungs text eingabe\n"); scanf(" %s", &d); stringToLower(d); caesar(d); printf("%s\n", d); return 0; } //--Entschlüsselung-------------------------------- else { printf("Endschlüsselungs text eingabe\n"); scanf(" %s", &d); caesarback(d); printf("%s\n", d); } return 0; } //ersetzt in einem String Großbuchstaben durch Kleinbuchstaben------------------ char * stringToLower(char *d) { int i; int len = strlen(d); for(i=0; i<len; i++) { if(d[i] >= 'A' && d[i] <= 'Z') { d[i] += 32; } } return 0; } Das Programm verschlüsselt gibt allerdings beim Entschlüsseln nicht alle Zeichen korrekt aus und ich finde den Fehler nicht . Hoffe wer von euch kann mir da helfen damit in zukunft keiner mehr meine daten knacken kann 😅.
  21. naja das geht natürlich auch 'b'/98 ist ja an sich dasselbe aber 'b' sieht schon schöner aus das stimmt wohl
  22. lese ja eh chars ein dementsprechend ist das dann ja eh b hat bis jetzt ohne ' ' funktioniert. und das hört sich ja nach spaß an 😂. An sich finde ich programmieren auch interessant und spannend und wenn es funktioniert macht es auch spaß. Aber programmieren ist halt auch sehr undankbar wenn man Fehler macht und nicht sehr hilfreich wenn man dann nicht weiter weiß 🤯. Habe bis jetzt ein wenig mit Python mich probiert fand ich deutlich verständlicher als C.
  23. Top danke da wäre ich nie drauf gekommen 😂. Dafür hasse ich C das es immer an so Kleinigkeiten hängt. Aber naja Übung macht den meister und zum glück gibt es ja Leute wie euch die den noobs dabei helfen können
  24. Finde die Lösung von @Rienne super das sollte reichen wir wollen es ja nicht gleich übertreiben aber sagt mal nur noch so als frage nebenbei. printf("Bitte eine der oben genannten zeichen eingeben\n"); wenn ich den Befehl vor der Eingabe ausspucke siehe hier: int main(void){ //int ceaser=1, vigenere=2 , symmetrische=3, eingabe=0; char b=98, auswahl=0; //char beenden=b; b=98 in ascii tabelle printf("Herzlich Willkommen\n\nWas wollen Sie tun?\n Drücken sie 1-3 für die jeweilige verschlüsselungs variante\n oder b um das Programm zu beenden\n"); printf(" (1) Ceasar Verschlüsselung\n (2) Vigenere Verschlüsselung\n (3) Symmetrische Verschlüsselung\n (b) Beenden\n\n"); //auswahl funktion hier while (auswahl != b){ printf("\nBitte geben sie eine der oben genannten zeichen ein:\n"); scanf("%c", &auswahl) ; if (auswahl == '1') //49 steht für 1 printf("sie haben sich für die Ceasar Verschlüsselung entschieden") ; else if (auswahl == '2')//50 steht für 2 printf("sie haben sich für die Vigenere Verschlüsselung entschieden") ; else if (auswahl == '3')//51 steht für 3 printf("sie haben sich für die Symmetrische Verschlüsselung entschieden") ; } printf("Danke das sie sich für das Programm endschieden haben") ; return 0; } habe ich das problem wenn eine falsche zahl eingegeben wird er den printf("\nBitte geben sie eine der oben genannten zeichen ein:\n"); text 2 mal auspuckt liegt das am enter oder wo ist das problem? und wie kann ich das umgehen 😅

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...