Onetimepad
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
Search
AdTaily
Najnowsze wpisy
Kategorie
- bez kategorii (38)
- c++ (2)
- czas wolny (28)
- java (3)
- kryptografia (5)
- praca (26)
- projekty (24)
- przemyślenia (15)
- uczelnia (13)
- Webdevelopment (33)
- Adobe AIR (2)
- Adobe Flex (2)
- AJAX (3)
- Apache (1)
- cloud computing (1)
- doctrine (2)
- GoogleMaps (4)
- JavaScript (3)
- jQuery (1)
- MySql (3)
- Optymalizacja (1)
- paypal (1)
- php (14)
- symfony (3)
- Symfony 1.4 (1)
- Symfony 2.0 (1)
- WordPress (4)
Przyjaciele
Archiwa
Tagi
Barcamp
bug
czas wolny
DES
doctrine
FireFox
fix
Flex
google maps
ipn
java
Java Script
Konferencje
kryptografia
layout
marzec
mysql
Onetimepad
paypal
php
podsumowanie
praca
projekty
Przeglądarki
seo
sesja
sklep
sylwester
symfony
Szyfrowanie
tutorial
twitter
uczelnia
update
urlop
Webdevelopment
wordpress
XOR
zakopane
zdrowietouroda.pl
zły klient
życie
Najnowsze komentarze
Linki
- wykonywanie stron www
- aranżacje
- Notensatz
- darmowe pozycjonowanie
- sklep mountainboard
- Tłumaczenia angielsko polskie tanie.
- pozycjonowanie stron częstochowa
- wózki dziecięce
- Darmowe Pobieranie TORRENTY
- Pomysły i porady Mistrzunia
- zakopane noclegi
- nieruchomości warszawa
- Katalog stron
- sale weselne częstochowa
- serwis komputerowy