uczelnia
Szyfrowanie XOR One Time Pad
Idęą szyfrowania one time pad jest to, że do każdej wiadomości generujemy jednorazowy klucz długości tej wiadomości. Jest to sposób na szyfrowanie bardzo bezpieczne krótkich wiadomości.
Jedynym mankamentem samej metody jest fakt że przed przesłaniem zaszyfrowanej wiadomości musimy przesłać również klucz.
Implementacja
#include <cstdlib>
#include <iostream>
#include <string>
using namespace std;
void print_string(char string[], int len) {
int i=0;
while(i<len){
cout<<string[i];
i++;
}
}
int main(int argc, char *){
char key[20], msg[50], crypt[50], decrypt[50];
cout<<"podaj dlugosc klucza(0 to dl. wiadomosci): ";
int key_len;
cin>>key_len;
cout<<"podaj wiadomosc: ";
cin>>msg;
if(key_len==0) {
key_len=strlen(msg);
}
int msg_len = strlen(msg);
srand((unsigned)time(0));
for(int i=0; i<key_len; i++){
key[i]=(char)(rand()%256);
}
cout<<"\n\n\nklucz: ";
print_string(key, key_len);
cout<<"\tdlugosc klucza: "<<strlen(key)-1<<"\tdlugosc wiadomosci: "<<strlen(msg)<<endl;
int i=0;
while(i<msg_len){
int cur_key_char=0;
if(i>strlen(key))
cur_key_char = i % key_len ;
crypt[i] = msg[i]^ key[cur_key_char];
i++;
}
cout<<"\n\ncrypted:\n";
print_string(crypt, msg_len);
print_string(decrypt, msg_len);
int crypt_len = strlen(crypt);
cout<<"\n\nshould be:\n";
print_string(msg, msg_len);
i=0;
while(i<msg_len){
int cur_key_char=0;
if(i>strlen(key))
cur_key_char = i % key_len ;
decrypt[i] = crypt[i] ^ key[cur_key_char];
i++;
}
cout<<"\n\ndecrypted:\n";
print_string(decrypt, msg_len);
cout<<"\n\n\n\n";
system("PAUSE");
return EXIT_SUCCESS;
}
Do pobrania również wersja skompilowana plus źródło: Onetimepad XOR
session phase two
Drugi egzamin 4.0 Inżynieria Oprogramowania. Wiele godzin męczenia się z UML’em. Dziesiątki diagramów. Kupa dokumentacji. Diagram klas. Opisanie wszystkiego po angielsku w SRS’ie. Wygenerowanie kodu. Postawienie SVN. Wygenerowanie dokumentacji za pomocą javadoc’a. Opłaciło się zwolniony z egzaminu. Teraz tylko walka z Kryptografią, Sieciami komputerowymi została i na deser prezentacja naszego projektu dyplomowego (pierwszej części czyli co już zrobiliśmy i dlaczego nie działa
). 2, 9 i 15 lutego. Dużo pracy jeszcze pozostało, Ale już prawie na półmetku.
session…
Starcie pierwsze. 5 z egzaminu. Za obecność. Tak na rozgrzewkę wykład Humanizujący. Teraz została tylko kryptografia, inżynieria oprogramowania i sieci. Praca nauka i projekty. No na nadmiar czasu na pewno narzekać nie będę.
Teraz w produkcji:
- Ostatnie poprawki: smuglr.com
- CMS + paypal: irishrootsmagazine.ie layout by Robert Podgórski
Search
Moje Twitty
- Saved My Day! jQuery Tab On Return Key Press - JavaScript - Snipplr Social Snippet Repository snipplr.com/view/12643/ via @snipplr 2 days ago
- A new favorite: Daydream in Blue Ft. Lupe Fiasco (Bassex Remix) (Play Me Freebie) by @playmerecords soundcloud.com/playmerecords/… on #SoundCloud 4 weeks ago
- A new favorite: Double Trouble by Datsik & Z-Trip by @dubstep soundcloud.com/dubstep/double… on #SoundCloud 4 weeks ago
- A new favorite: Forekast - Samsonite (Original Mix) -- FREE DOWNLOAD by @forekast soundcloud.com/forekast/samso… on #SoundCloud 4 weeks ago
- dubsteppin my ass of! 4 weeks ago
- Rendering emails with Twig in Symfony2 bit.ly/rPqylL 1 month ago
- Need help with Datetime field with null value stackoverflow.com/q/10176459/107… #symfony2 #doctrine2 1 month ago
- A new favorite: KDrew - Bullseye by @KDrewMusic soundcloud.com/kdrewmusic/kdr… on #SoundCloud 1 month ago
- How foreach actually works stackoverflow.com/q/10057671/107… 1 month ago
- A new favorite: Gotye - Somebody That I Used To Know Ft. Kimbra (KDrew Remix) by @KDrewMusic soundcloud.com/kdrewmusic/got… on #SoundCloud 1 month ago
AdTaily
Najnowsze wpisy
Kategorie
- bez kategorii (39)
- c++ (2)
- czas wolny (28)
- java (3)
- kryptografia (5)
- praca (26)
- projekty (24)
- przemyślenia (15)
- uczelnia (13)
- Webdevelopment (35)
- Adobe AIR (2)
- Adobe Flex (2)
- AJAX (3)
- Apache (1)
- cloud computing (1)
- doctrine (3)
- GoogleMaps (4)
- JavaScript (3)
- jQuery (1)
- MySql (3)
- Optymalizacja (1)
- paypal (1)
- php (14)
- symfony (5)
- Symfony 1.4 (2)
- Symfony2 (2)
- TWIG (1)
- WordPress (4)