Δημοσιεύτηκε: 27 Αύγ 2011, 18:47
stamatiou έγραψε:Στο cipher το cp τι το θέλουμε;
Σε αυτό σώζω την αρχή του s, και το επιστρέφω στο τέλος ως τιμή επιστροφής της συνάρτησης (διότι στο ενδιάμεσο έχουν αλλάξει οι χαρακτήρες του s μέσα στο for-loop, και το s δείχνει στο τέλος του string, δλδ στο '\0', άρα άμα επέστρεφα το s θα ήταν σαν να επέστρεφα το '\0').
Τη συνάρτηση τη βάζω να επιστρέφει το αλλαγμένο string για να μπορώ να τη χρησιμοποιώ απευθείας κατόπιν μέσα στην printf (αλλιώς θα έπρεπε πρώτα να καλέσω μόνη της την cipher(s) για να αλλάξει το s, και μετά σε άλλη γραμμή να καλέσω την printf και να της περάσω το s... ενώ τώρα καλώ μόνο την printf και της περνάω απευθείας την cipher(s) στη θέση του s).
έγραψε:Edit: Προσπάθησα να φτιάξω και την συνάρτηση αποκρυπτογράφησης και να τα ενώσω σε ένα αλλά όταν ζητά το κείμενο πάει αμέσως μετά στο κλειδί και συνεχίζει να ζητά το κλειδί μέχρι να δώσω 0, μετά δεν εκτυπώνει το κείμενο
Η αποκρυπτογράφηση γίνεται καλώντας ξανά την cipher(s) στο αλλαγμένο s. Αυτή είναι η ιδιότητα του XOR, όταν κάνεις κάτι XOR με μια τιμή κι αλλάξει, τότε αν το αλλαγμένο το κάνεις πάλι XOR με την ίδια τιμή, επιστρέφει στην αρχική του κατάσταση.