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

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, 20:54:23 pm

Login with username, password and session length

Αναζήτηση

Google

THMMY.gr Web
Πρόσφατα
Πρακτική Άσκηση ΤΗΜΜΥ 201...
by chris_p30
[Today at 19:46:54]

Ισραήλ - Ιράν: Πόλεμος στ...
by Yamal
[Today at 19:07:04]

[Γραφική] Λυμένα θέματα
by okanpala
[Today at 18:56:22]

Τι ακούτε αυτήν τη στιγμή...
by Katarameno
[Today at 14:25:00]

Αντικατάστασης πυκνωτή σε...
by george14
[Today at 13:58:20]

Πότε θα βγει το μάθημα; -...
by tzortzis
[Today at 13:19:53]

Αποτελέσματα Εξεταστικής ...
by george14
[Today at 12:08:25]

[ΨEE] Γενικές απορίες και...
by Juror8
[Today at 12:06:57]

[Οργάνωση Υπολογιστών] Γε...
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 Διάλεξις
[June 16, 2025, 01:56:37 am]

[Σ.Π.Η.Ε.] Παλιά θέματα -...
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]
Στατιστικά
Members
Total Members: 9961
Latest: Poli
Stats
Total Posts: 1426694
Total Topics: 31710
Online Today: 242
Online Ever: 2093
(April 17, 2025, 08:47:49 am)
Users Online
Users: 65
Guests: 136
Total: 201
Captain
spoun
tsageo
Don Corleone
ipapadog
Sotiris_atha
Napoleontas
smanio
Pakapis5
parispoll
vaggos
gntitsios
Dimikioup
aachmet
mdimitrig
Athinaaz
HlektrikhPatata
mgrivab
Nikospneumatikos
Gray139
chrismzag
gianniss
mark
stefpapa21
alexlemp
Chrisvb17
nikos123321
tasos_ntv
melisste22
Kaniki
thanoswyd
koulikas
dimitrisblioumis
Annapar
msandr
Kv
Zoe06
iodim
evax
JoHn!
dionmant
sigklitiki
babis.papabill
Paschalina.S
freedom
Maria Pap
NickSpan
Rithan
aggelosiliadis
aimgk
mdoulge
soktas
johnk
DidosK
thpanousis
tzortzis
Marihouan820
Orfanidis Stelios
ioannisdamantis
dsaragiotis
dimpanas
Εμφάνιση

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

Νέα!
Για αλλαγή του public name σας, επικοινωνήστε με έναν από τους Admins.
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 3292 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...