giannis-21 Δημοσιεύτηκε Μάρτιος 13, 2009 #1 Δημοσιεύτηκε Μάρτιος 13, 2009 παιδες εχω μια ασκηση(δεν μας ενδιαφερει η γλωσσα προγραμματισμου) στην οποια πρεπει να δινει ο χρηστης μια φραση ή να την διαβαζει απο ενα αρχειο και να κρυπτογραφηται συμφωνα με τον αλγοριθμο του καισαρα και αν μπορουμε να κανουμε μετα την αποκρυπτογραφηση.εχει κανενας καμια ιδεα τι που πως γιατι?απο c , c++ ,java κατεχουμε κατι..τωρα απο αλλες γλωσσες σκραπες:help1:
l2phile Μάρτιος 13, 2009 #2 Μάρτιος 13, 2009 Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click Dim strlen As Integer Dim alphabet(0 To 25) As String Dim str As String Dim i As Integer Dim j As Integer Dim flag As Boolean Dim key As Integer TextBox3.Text = "" alphabet(0) = "a" alphabet(1) = "b" alphabet(2) = "c" alphabet(3) = "d" alphabet(4) = "e" alphabet(5) = "f" alphabet(6) = "g" alphabet(7) = "h" alphabet(8) = "i" alphabet(9) = "j" alphabet(10) = "k" alphabet(11) = "l" alphabet(12) = "m" alphabet(13) = "n" alphabet(14) = "o" alphabet(15) = "p" alphabet(16) = "q" alphabet(17) = "r" alphabet(18) = "s" alphabet(19) = "t" alphabet(20) = "u" alphabet(21) = "v" alphabet(22) = "w" alphabet(23) = "x" alphabet(24) = "y" alphabet(25) = "z" strlen = TextBox2.Text.Length If RadioButton1.Checked = True Then key = Val(TextBox1.Text) If key >= 1 And key <= 25 Then str = TextBox2.Text.ToLower For i = 1 To strlen flag = False If str.Substring(i - 1, 1) = " " Then TextBox3.Text = TextBox3.Text + " " flag = True Else For j = 0 To 25 If str.Substring(i - 1, 1) = alphabet(j) And flag = False Then TextBox3.Text = TextBox3.Text + alphabet((j + key) Mod 26) flag = True End If Next End If Next Else MsgBox("Το κλειδί δεν είναι μεταξύ των επιτρεπτών ορίων") End If Else If RadioButton2.Checked = True Then key = Val(TextBox1.Text) If key >= 1 And key <= 25 Then str = TextBox2.Text.ToLower For i = 1 To strlen flag = False If (str.Substring(i - 1, 1) = " ") Then TextBox3.Text = TextBox3.Text + " " Else For j = 0 To 25 If str.Substring(i - 1, 1) = alphabet(j) And flag = False Then TextBox3.Text = TextBox3.Text + alphabet((26 + j - key) Mod 26) flag = True End If Next End If Next Else MsgBox("Tο κλειδί δεν είναι μεταξύ των επιτρεπτών ορίων") End If Else MsgBox("Δεν επιλέξατε κωδικοποίηση ή αποκωδικοποίηση") End If End If End SubΣε Visual Basic είναι.Εργασία από την σχολή μας. Τώρα αν δουλεύει, θα σε γελάσω.
masteroidz Μάρτιος 13, 2009 #3 Μάρτιος 13, 2009 Η κρυπτογράφιση σύμφωνα με τον αλγόρυθμο του καίσαρα είναι ο πιο απλός τρόπος κρυπτογράφησης. Πολύ απλά:1) θα διαβάζεις γράμμα-γράμμα το κείμενο που σου δίνει ο χρήστης2) μετατρέπεις το κάθε γράμμα σε αριθμό ascii3) αφαιρείς από αυτό τον αριθμό το 3 4) και το ξαναμετατρέπεις σε γράμμα.
Jaco Μάρτιος 13, 2009 #4 Μάρτιος 13, 2009 Έχουν περάσει 6 χρόνια από τότε και έχω μεγαλώσει αρκετά, αλλά είναι ακόμα επίκαιρο το άρθρο και έχει και κώδικα για αλγόριθμους μετάθεσης... προσπάθησε να μπεις στην λογική και ότι απλά να γράψεις τον κώδικα...
giannis-21 Μάρτιος 14, 2009 Author #5 Μάρτιος 14, 2009 ευχαριστω παιδες.σημερα θα ξεκινησω να το γραφω..οταν τελειωσω θα το ποσταρω να το εχουμε
giannis-21 Μάρτιος 20, 2009 Author #6 Μάρτιος 20, 2009 // CEASAR Cryptography in C #include <stdio.h> #include <string.h> #include <stdlib.h> //--------------------------------------------------------------------------- char *_Ceasar(char *pszPlaintext,int nKey); //--------------------------------------------------------------------------- char szBuffer[128], szKey[128]; int nKey; int main(int argc, char* argv[]) { for(; { printf(" doste kleidi 1 eos 26 (i pataste apla enter gia na ekselthete):"); gets(szKey); if(!strlen(szKey)) break; if(!(nKey=atoi(szKey)) || nKey>26) { printf(" lathos kleidi : %d (apodektes timer: 1 eos 26)\n",nKey); continue; } printf(" pliktrologise to keimeno sou:\n"); gets(szBuffer); if(strlen(szBuffer)) printf(" kriptografima:%s\n",_Ceasar(strlwr(szBuffer),atoi(szKey))); } return 0; } //--------------------------------------------------------------------------- char *_Ceasar(char *pszPlaintext,int nKey) { int nCharIdx, nPlainLetter; // apodektes times gia to nKey 1 os 26 if(nKey<1 || nKey>26) return NULL; for(nCharIdx=0;nCharIdx<strlen(pszPlaintext);nCharIdx++) { nPlainLetter = pszPlaintext[nCharIdx]; // einai mikra ta grammata? if(pszPlaintext[nCharIdx]>='a' && pszPlaintext[nCharIdx]<='z') { // logo metatropis se ascii mipos meta to x den ginete sosta i metatropi? if(nPlainLetter+nKey>'z') pszPlaintext[nCharIdx] = (char)96+(nPlainLetter+nKey)-'z'; // Swap to z => a etc.. else pszPlaintext[nCharIdx]+=nKey; // plain char + nKey } } return pszPlaintext; } kai 2 ilopoiisi: #include <stdio.h>int main(void) { char messageClear[bUFSIZ]; char messageCrypt[bUFSIZ]; char buf[5]; int shift, i; printf("This program encrypts a string using the Caesar Cipher \n\n"); printf("Enter alphabetic string: ", BUFSIZ); fgets(messageClear, BUFSIZ, stdin); fflush(stdin); for (;{ printf("\n\nEnter encryption key (1-4): "); fgets(buf, 5, stdin);//the use of scanf is problematical, this is MUCH safer fflush(stdin); shift = buf[0] - 48; if ((buf[1] != '\n') || (shift < 1 || shift > 4)) printf("Bad value for shift!\n"); else break; } i=0; while (messageClear){ messageCrypt = messageClear + shift; i++; } messageCrypt = '\0'; printf("Your Message:\n%s", messageClear); printf("Encrypted:\n%s", messageCrypt); printf("\n\nType return to exit.\n"); getchar(); return 0; }
Recommended Posts
Archived
This topic is now archived and is closed to further replies.