• Downloads
  • ! Read Me !
  • Μαθήματα
  • Φοιτητικά
  • Τεχνικά Θέματα
  • Συζητήσεις
  • Happy Hour!
  • About THMMY.gr
 V  < 
Search:  
Welcome, Guest. Please login or register.
June 17, 2025, 09:31:00 am

Login with username, password and session length
Links
  Thmmy.gr portal
   Forum
   Downloads
   Ενεργ. Λογαριασμού
   Επικοινωνία
  
  Χρήσιμα links
   Σελίδα τμήματος
   Βιβλιοθήκη Τμήματος
   Elearning
   Φοιτητικά fora
   Πρόγραμμα Λέσχης
   Πρακτική Άσκηση
   Ηλεκτρονική Εξυπηρέτηση Φοιτητών
   Διανομή Συγγραμμάτων
   Ψηφιακό Καταθετήριο Διπλωματικών
   Πληροφορίες Καθηγητών
   Instagram @thmmy.gr
   mTHMMY
  
  Φοιτητικές Ομάδες
   ACM
   Aristurtle
   ART
   ASAT
   BEAM
   BEST Thessaloniki
   EESTEC LC Thessaloniki
   EΜΒ Auth
   IAESTE Thessaloniki
   IEEE φοιτητικό παράρτημα ΑΠΘ
   SpaceDot
   VROOM
   Panther
  
Πίνακας Ελέγχου
Welcome, Guest. Please login or register.
June 17, 2025, 09:31:00 am

Login with username, password and session length

Αναζήτηση

Google

THMMY.gr Web
Πρόσφατα
Ισραήλ - Ιράν: Πόλεμος στ...
by okan
[Today at 02:33:21]

Τι ακούτε αυτήν τη στιγμή...
by Katarameno
[Today at 02:29:21]

[Οργάνωση Υπολογιστών] Γε...
by RAFI
[June 16, 2025, 22:46:54 pm]

[Σ.Π.Η.Ε.] Γενικές απορίε...
by Nikos_313
[June 16, 2025, 19:49:00 pm]

[ΘΤΠΑ] Γενικές απορίες κα...
by Nikos_313
[June 16, 2025, 16:56:56 pm]

[Εφ.Θερμοδυναμική] Γενικέ...
by Λαμπτήρας
[June 16, 2025, 15:55:08 pm]

[Αρχές Οικονομίας] Να επι...
by _Trob
[June 16, 2025, 13:28:21 pm]

[Σ.Α.Π.Γ.] Εργασία 2025
by Nikos_313
[June 16, 2025, 12:13:45 pm]

Αποτελέσματα Εξεταστικής ...
by Nikos_313
[June 16, 2025, 12:01:53 pm]

Πρακτική Άσκηση ΤΗΜΜΥ 201...
by George_RT
[June 16, 2025, 10:22:18 am]

[Διανεμημένη Παραγωγή] Γε...
by Διάλεξις
[June 16, 2025, 01:56:37 am]

Αντικατάστασης πυκνωτή σε...
by nmpampal
[June 15, 2025, 16:25:56 pm]

[Σ.Π.Η.Ε.] Παλιά θέματα -...
by nmpampal
[June 15, 2025, 06:43:15 am]

Το thmmy.gr στο instagram...
by Mr Watson
[June 15, 2025, 00:50:23 am]

[Λογισμός ΙΙ] Απορίες σε...
by el mariachi
[June 14, 2025, 20:47:07 pm]

ΠΡΟΣΟΧΗ στο ανέβασμα θεμά...
by tzortzis
[June 14, 2025, 16:54:08 pm]

Ρυθμίσεις Θεμάτων της Ανώ...
by el mariachi
[June 14, 2025, 11:56:45 am]

Πότε θα βγει το μάθημα; -...
by Nikos_313
[June 14, 2025, 10:00:55 am]

Αρχείο Ανακοινώσεων [Arch...
by Nikos_313
[June 14, 2025, 09:58:14 am]

Αλέξης Τσίπρας, η επιστρο...
by Yamal
[June 14, 2025, 04:42:23 am]
Στατιστικά
Members
Total Members: 9960
Latest: valco08
Stats
Total Posts: 1426680
Total Topics: 31710
Online Today: 169
Online Ever: 2093
(April 17, 2025, 08:47:49 am)
Users Online
Users: 13
Guests: 105
Total: 118
rafa98p
GeorgeGk
Sotirisbikos
acolak
grepanis
tsaliki
hacky
tzortzis
Geoth
Saint_GR
rafail zisiadis
Εμφάνιση

Νέα για πρωτοετείς
Είσαι πρωτοετής;... Καλώς ήρθες! Μπορείς να βρεις πληροφορίες εδώ. Βοήθεια για τους καινούργιους μέσω χάρτη.
Κατεβάστε εδώ το Android Application για εύκολη πρόσβαση στο forum.
Ανεβάζετε τα θέματα των εξετάσεων στον τομέα Downloads με προσοχή στα ονόματα των αρχείων!

Νέα!
Συμβουλές καλής χρήσης του φόρουμ: Youtube embed code and links, Shoutbox, Notify, ...
Δείτε περισσότερα εδώ...
THMMY.gr > Forum > Μαθήματα Βασικού Κύκλου > 2ο Εξάμηνο > Αντικειμενοστραφής Προγραμματισμός (Moderators: chatzikys, tzortzis) >  [C++] Άσκηση 6 - 2015/2016 Προθεσμία 24/11/2015 12:00 πμ
0 Members and 1 Guest are viewing this topic.
Pages: [1] 2 Go Down Print
Author Topic: [C++] Άσκηση 6 - 2015/2016 Προθεσμία 24/11/2015 12:00 πμ  (Read 3279 times)
Vlassis
Veteran
Μόνιμος κάτοικος ΤΗΜΜΥ.gr
******
Posts: 2162


εφακ


View Profile
[C++] Άσκηση 6 - 2015/2016 Προθεσμία 24/11/2015 12:00 πμ
« on: November 14, 2015, 12:41:39 pm »

Κληρονομικότητα ΙΙ: Κρυπτογράφηση

Δίνεται η ακόλουθη Abstract Class Crypto και οι κλάσεις Cesar και XOR που κληρονομούν την Crypto.
Class Crypto{
protected:
    string Message;
    string Encrypted;
    string Decrypted;
public:
    string virtual Encryption ()=0;
    string virtual Decryption ()=0;
    Crypto(string msg);
    string getMessage();
    void setMessage();
    string getEncrypted();
    string getDecrypted();
}

Class Cesar: public Crypto{
}

Class XOR: public Crypto{
}

Να υλοποιηθούν όλες οι μέθοδοι ώστε να λειτουργεί η ακόλουθη main
main()
{
    Cesar c_enc(“hello”);
    c_enc. Encryption();
    string resEncCes=c_enc.getEncrypted();
    coutn<<resEncCes;<<endl;
    c_enc.Decryption()
    cout<<c_end.getDecrypted();
    XOR x_enc(“hello”);
    x_enc.Encryption();
    string resEncXOR=c_enc.getEncrypted();
    coutn<<resEncXOR;<<endl;
    x_enc.Decryption()
    cout<<x_end.getDecrypted();
}

Ο αλγόριθμος του Cesar λειτουργεί ως εξής: Ας θεωρήσουμε ένα μήνυμα m ως είσοδο στον αλγόριθμο. Το κάθε σύμβολο (χαρακατήρας) του αρχικού μηνύματος αντικαθίσταται από ένα νέο σύμβολο (χαρακτήρα) ο οποίος προκύπτιε από το αρχικό σύμβολο + ν θέσεις στο αρχικό. Δηλαδή εαν το ν είναι 1 και το μήνυμα είναι ABCD τότε το κρυπτογραφημμένο μήνυμα θα είναι BCDE. Η αποκρυπτογράφηση θα γίνεται με την αντίστροφη διαδικασία.

Στην περίπτωση του XOR η κρυπτoγράφηση βασίζεται στην πράξη του XOR μεταξύ δύο bit. Συνοπτικά ως είσοδος λαμβάνεται το μήνυμα και ένα μυστικό κλειδί τα οποία τα συνδιάζουμε για να γίνει η κρυπτογράφηση. Για την πράξη της κρυπτογράφησης χρησιμοποιούμε τον τελεστή XOR (^) μεταξύ του μηνύματος και του κλειδιού. Δηλαδή εαν το μήνυμα μας είναι το “abc” και το κλειδί μας είναι το 'c' τότε θα κάνουμε κάθε χαρακτήρα του μηνύματος XOR με το χαρακτήρα 'c'. Δηλαδή το XOR(a,c)=a^c, XOR(b,c) κ.ο.κ. Θεωρείστε στη συγκεκριμένη περίπτωση ότι το κλειδί μπορεί να είναι ένα μόνος χαρακτήρας.

Oποιαδήποτε επιπλεόν μεταβλητη χρειάζεστε θα πρέπει να την ορίσετε και για την περίπτωση του Cesar και του XOR. Για παράδειγμα στην περίπτωση Cesar χρειάζεται να ορίσετε τον αριθμό n μετατώπισης ενώ στην XOR το αντίστοιχο κλειδί.
« Last Edit: December 05, 2015, 17:06:00 pm by Vlassis » Logged

πρόπελ
Is any of it real? I mean, look at this. Look at it! A world built on fantasy! Synthetic emotions in the form of pills, psychological warfare in the form of advertising, mind-altering chemicals in the form of food, brainwashing seminars in the form of media, controlled isolated bubbles in the form of social networks. mr.robot s01e10
tpt
Καταξιωμένος/Καταξιωμένη
***
Posts: 148


View Profile
Re: [C++] Άσκηση F - 2015/2016 Προθεσμία 24/11/2015 12:00 πμ
« Reply #1 on: November 14, 2015, 20:00:48 pm »

παιδια υπαρχει περιπτωση να ξερει καποιος το εξης;
οταν εχω ενα string πως μπορω να διαβασω ενα προς ενα τους χαραχτηρες εχω κολλησει
Logged
Vlassis
Veteran
Μόνιμος κάτοικος ΤΗΜΜΥ.gr
******
Posts: 2162


εφακ


View Profile
Re: [C++] Άσκηση F - 2015/2016 Προθεσμία 24/11/2015 12:00 πμ
« Reply #2 on: November 14, 2015, 23:48:42 pm »

Code:
...
#include <string.h>
...
    char stringe[] = "Hello1";
    for (int i=0;i<strlen(stringe);i++){
        cout<<stringe[i]<<endl;
    }
...
Ετσι μπορεις να παρεις οποιον χαρακτηρα θες, εαν ξερεις που βρισκεται, ή να τους εμφανισεις ολους με τη σειρα ..
Logged

πρόπελ
Is any of it real? I mean, look at this. Look at it! A world built on fantasy! Synthetic emotions in the form of pills, psychological warfare in the form of advertising, mind-altering chemicals in the form of food, brainwashing seminars in the form of media, controlled isolated bubbles in the form of social networks. mr.robot s01e10
akyrosHM
Εθισμένος στο ΤΗΜΜΥ.gr
*****
Gender: Male
Posts: 665



View Profile
Re: [C++] Άσκηση F - 2015/2016 Προθεσμία 24/11/2015 12:00 πμ
« Reply #3 on: November 17, 2015, 00:13:27 am »

Στον Caesar της main δεν έχει ορίσει το m. Το παίρνω αυθαίρετα 1, έχοντας στην κλάση μου υλοποιήσεις για διαφορετικά m;
Logged

Εγκλωβισμένος στην Ηλεκτρολόγκα...
Apostolof
WebSlave
Αbsolute ΤΗΜΜΥ.gr
***
Gender: Male
Posts: 2660


Κεραυνοί, φωτιές, ece


View Profile WWW
Re: [C++] Άσκηση F - 2015/2016 Προθεσμία 24/11/2015 12:00 πμ
« Reply #4 on: November 17, 2015, 01:38:01 am »

Quote from: Vlassis on November 14, 2015, 12:41:39 pm
...
Ο αλγόριθμος του Cesar λειτουργεί ως εξής: Ας θεωρήσουμε ένα μήνυμα m ως είσοδο στον αλγόριθμο. Το κάθε σύμβολο (χαρακατήρας) του αρχικού μηνύματος αντικαθίσταται από ένα νέο σύμβολο (χαρακτήρα) ο οποίος προκύπτιε από το αρχικό σύμβολο + ν θέσεις στο αρχικό.
...
Quote from: akyrosHM on November 17, 2015, 00:13:27 am
Στον Caesar της main δεν έχει ορίσει το m. Το παίρνω αυθαίρετα 1, έχοντας στην κλάση μου υλοποιήσεις για διαφορετικά m;

Νομίζω το m είναι το string Message που στην υλοποίηση της main παίρνει τη τιμή "Hello".
Αν εννοείς το ν, τότε ναι, μάλλον θέλει να του δώσεις κάποια τυχαία τιμή όπως λέει στο τέλος:
Quote from: Vlassis on November 14, 2015, 12:41:39 pm
Για παράδειγμα στην περίπτωση Cesar χρειάζεται να ορίσετε τον αριθμό n μετατώπισης ενώ στην XOR το αντίστοιχο κλειδί.
Logged

All these moments will be lost in time, like tears in rain.
In the meanwhile, life goal.
Apostolof
WebSlave
Αbsolute ΤΗΜΜΥ.gr
***
Gender: Male
Posts: 2660


Κεραυνοί, φωτιές, ece


View Profile WWW
Re: [C++] Άσκηση F - 2015/2016 Προθεσμία 24/11/2015 12:00 πμ
« Reply #5 on: November 17, 2015, 14:33:01 pm »

Quote from: akyrosHM on November 17, 2015, 14:20:32 pm
Δεύτερη ερώτηση. Στην XOR αναφέρεται και σε τελεστή. Θέλει να του φτιάξουμε και operator; Επίσης στην περίπτωση πχ. του XOR(a,a) βάζω σε εκείνη τη θέση τι; 0;

Όχι δε χρειάζεται να φτιάξεις κάτι, ο τελεστής xor υπάρχει έτοιμος στη c++.
https://msdn.microsoft.com/en-us/library/3akey979.aspx
Επίσης ο τελεστής σου επιτρέπει τη πράξη char XOR char γράφοντας απλά:
Code:
char a,b,c;
c = a ^ b;

Ίσως σου φανεί χρήσιμο αυτό:
http://www.cplusplus.com/forum/articles/38516/
Logged

All these moments will be lost in time, like tears in rain.
In the meanwhile, life goal.
Schro
Αbsolute ΤΗΜΜΥ.gr
*******
Gender: Male
Posts: 2797


if cats could talk, they wouldn't.


View Profile
Re: [C++] Άσκηση F - 2015/2016 Προθεσμία 24/11/2015 12:00 πμ
« Reply #6 on: November 22, 2015, 19:43:55 pm »

Οπότε στην Ceasar το κλειδί της κρυπτογράφησης (πόσες θέσεις θα μετατοπιστούν) το βάζουμε εμείς αυθαίρετα;
Logged

------------------------------------TIPS FOR SUCCESS------------------------------
If you run out of handsoap, simply boil water and dip your hands into it. Heat kills bacteria.

When a zombie tells you that they want brains, what they mean is they want an education. Don't be afraid to help them.

Don't study until the night before a big exam. This will ensure that all the information is fresh in your mind.
Pest
Καταξιωμένος/Καταξιωμένη
***
Gender: Male
Posts: 209



View Profile
Re: [C++] Άσκηση F - 2015/2016 Προθεσμία 24/11/2015 12:00 πμ
« Reply #7 on: November 22, 2015, 20:52:31 pm »

Quote from: Schro on November 22, 2015, 19:43:55 pm
Οπότε στην Ceasar το κλειδί της κρυπτογράφησης (πόσες θέσεις θα μετατοπιστούν) το βάζουμε εμείς αυθαίρετα;
Ναι δεν ειναι συγκεκριμενο.
Παιδια οταν μου βγαζει μηνυμα 'string' does not name a type τι λαθος εχω κανει; σε μια συναρτηση μου το βγαζει.
Logged
vaiokons
Νεούλης/Νεούλα
*
Posts: 25



View Profile
Re: [C++] Άσκηση F - 2015/2016 Προθεσμία 24/11/2015 12:00 πμ
« Reply #8 on: November 22, 2015, 21:33:57 pm »

Quote from: gelef on November 22, 2015, 20:52:31 pm
Quote from: Schro on November 22, 2015, 19:43:55 pm
Οπότε στην Ceasar το κλειδί της κρυπτογράφησης (πόσες θέσεις θα μετατοπιστούν) το βάζουμε εμείς αυθαίρετα;
Ναι δεν ειναι συγκεκριμενο.
Παιδια οταν μου βγαζει μηνυμα 'string' does not name a type τι λαθος εχω κανει; σε μια συναρτηση μου το βγαζει.
Mήπως δεν έβαλες το  #include<string>  ?
Logged
Schro
Αbsolute ΤΗΜΜΥ.gr
*******
Gender: Male
Posts: 2797


if cats could talk, they wouldn't.


View Profile
Re: [C++] Άσκηση F - 2015/2016 Προθεσμία 24/11/2015 12:00 πμ
« Reply #9 on: November 22, 2015, 23:31:43 pm »

στην XOR το κρυπτογραφημένο μήνυμα πρέπει να αποτελείται μόνο απο χαρακτήρες;
Logged

------------------------------------TIPS FOR SUCCESS------------------------------
If you run out of handsoap, simply boil water and dip your hands into it. Heat kills bacteria.

When a zombie tells you that they want brains, what they mean is they want an education. Don't be afraid to help them.

Don't study until the night before a big exam. This will ensure that all the information is fresh in your mind.
zwitsa
Θαμώνας
****
Posts: 332



View Profile
Re: [C++] Άσκηση F - 2015/2016 Προθεσμία 24/11/2015 12:00 πμ
« Reply #10 on: November 22, 2015, 23:40:13 pm »

έδωσε μήπως κάποιο hint για το πως προσθέτουμε ν γράμματα ή θέλει να πεθάνουμε στο γκουγκλ πάλι;
Logged

Σήμερα είμαστε, αύριο δεν είμαστε. Φάτε.
Apostolof
WebSlave
Αbsolute ΤΗΜΜΥ.gr
***
Gender: Male
Posts: 2660


Κεραυνοί, φωτιές, ece


View Profile WWW
Re: [C++] Άσκηση F - 2015/2016 Προθεσμία 24/11/2015 12:00 πμ
« Reply #11 on: November 23, 2015, 00:21:09 am »

Quote from: Schro on November 22, 2015, 23:31:43 pm
στην XOR το κρυπτογραφημένο μήνυμα πρέπει να αποτελείται μόνο απο χαρακτήρες;

Όχι, μπορείς για παράδειγμα να κάνεις
Code:
XOR x_enc("hello185 a45");
αρκεί να οι αριθμοί ή ότι άλλο βάλεις να είναι μέσα στα ""

Quote from: zwitsa on November 22, 2015, 23:40:13 pm
έδωσε μήπως κάποιο hint για το πως προσθέτουμε ν γράμματα ή θέλει να πεθάνουμε στο γκουγκλ πάλι;

Όχι δεν έδωσε, αλλά δε χρειάζεται κιόλας. Χρησιμοποιείς απλά τη πράξη της πρόσθεσης. Πχ το 'a' + 1; δίνει b.
Logged

All these moments will be lost in time, like tears in rain.
In the meanwhile, life goal.
geopas
Θαμώνας
****
Gender: Male
Posts: 329


View Profile
Re: [C++] Άσκηση F - 2015/2016 Προθεσμία 24/11/2015 12:00 πμ
« Reply #12 on: November 23, 2015, 00:35:10 am »

Quote from: Tolis _tmo_ on November 23, 2015, 00:21:09 am
Quote from: Schro on November 22, 2015, 23:31:43 pm
στην XOR το κρυπτογραφημένο μήνυμα πρέπει να αποτελείται μόνο απο χαρακτήρες;

Όχι, μπορείς για παράδειγμα να κάνεις
Code:
XOR x_enc("hello185 a45");
αρκεί να οι αριθμοί ή ότι άλλο βάλεις να είναι μέσα στα ""

Quote from: zwitsa on November 22, 2015, 23:40:13 pm
έδωσε μήπως κάποιο hint για το πως προσθέτουμε ν γράμματα ή θέλει να πεθάνουμε στο γκουγκλ πάλι;

Όχι δεν έδωσε, αλλά δε χρειάζεται κιόλας. Χρησιμοποιείς απλά τη πράξη της πρόσθεσης. Πχ το 'a' + 1; δίνει b.
Aυτο το τελευταιο ισχυει σιγουρα,λιγο μπακαλικο μου φαινεται οι κωδικοι σε ASCII να ειναι συνεχομενοι για τα γραμματα.Επισης αμα περασεις το Ζ τι γινεται;
Logged
Apostolof
WebSlave
Αbsolute ΤΗΜΜΥ.gr
***
Gender: Male
Posts: 2660


Κεραυνοί, φωτιές, ece


View Profile WWW
Re: [C++] Άσκηση F - 2015/2016 Προθεσμία 24/11/2015 12:00 πμ
« Reply #13 on: November 23, 2015, 00:45:42 am »

Quote from: geopas on November 23, 2015, 00:35:10 am
Quote from: Tolis _tmo_ on November 23, 2015, 00:21:09 am
...
Aυτο το τελευταιο ισχυει σιγουρα,λιγο μπακαλικο μου φαινεται οι κωδικοι σε ASCII να ειναι συνεχομενοι για τα γραμματα.Επισης αμα περασεις το Ζ τι γινεται;

Εγώ έτσι το έκανα και λειτουργεί.
Επίσης έχει το θετικό ότι όταν φτάνει στο τέλος των χαρακτήρων (δεν πάει μόνο μέχρι το Ζ έχει και κάτι άλλα) κάνει rewind και όχι overflow. Για αυτό δεν είμαι 100% σίγουρος (κάπου νμζ το διάβασα) πάντως με 50000000 που το δοκίμασα λειτουργεί.
Logged

All these moments will be lost in time, like tears in rain.
In the meanwhile, life goal.
Schro
Αbsolute ΤΗΜΜΥ.gr
*******
Gender: Male
Posts: 2797


if cats could talk, they wouldn't.


View Profile
Re: [C++] Άσκηση F - 2015/2016 Προθεσμία 24/11/2015 12:00 πμ
« Reply #14 on: November 23, 2015, 01:10:59 am »

κι εμένα λειτουργεί (δηλαδή κάνει κρυπτογράφηση και αποκρυπτογράφηση κανονικά) και με ακραία νούμερα, απλά το Encrypted όταν το εκτυπώνω δεν αποτελείται μόνο απο γράμματα, αλλά έχει και σύμβολα μέσα. αυτό φαντάζομαι δεν είναι πρόβλημα εφ'όσον γίνονται σωστά οι διαδικασίες (απο)κρυπτογράφησης, έτσι;
Logged

------------------------------------TIPS FOR SUCCESS------------------------------
If you run out of handsoap, simply boil water and dip your hands into it. Heat kills bacteria.

When a zombie tells you that they want brains, what they mean is they want an education. Don't be afraid to help them.

Don't study until the night before a big exam. This will ensure that all the information is fresh in your mind.
Pages: [1] 2 Go Up Print
Jump to:  

Powered by SMF | SMF © 2006-2009, Simple Machines LLC
Scribbles2 | TinyPortal © Bloc | XHTML | CSS
Loading...