begin process at 2012 02 10 21:04:50
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

Réseaux & Internet

 > CLIENT-SERVEUR : DONNEES CRYPTEES XOR

CLIENT-SERVEUR : DONNEES CRYPTEES XOR


 Information sur la source

Note :
7,5 / 10 - par 2 personnes
7,50 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10
Catégorie :Réseaux & Internet Niveau :Initié Date de création :24/06/2003 Date de mise à jour :24/06/2003 15:30:15 Vu :4 579

Auteur : Krox68

Ecrire un message privé
Commentaire sur cette source (6)
Ajouter un commentaire et/ou une note

 Description

le serveur envoie un message crypté avec XOR, la clé est le n°de port
le cliet recois les données et les décrypte avec la clé (le port)

serveur arguments : PORT MESSAGE
client arguments : HOTE PORT

activez le serveur avec un message et faite telnet [127.0.0.1] [n°port] : il recoit les données...cryptées

le cryptage n'est pa super puissant mai c juste pour donné l'idée

Source

  • //#######################SERVEUR#########################"
  • #include <stdio.h>
  • #include <stdlib.h>
  • #include <sys/types.h>
  • #include <sys/socket.h>
  • #include <netinet/in.h>
  • #include <netdb.h>
  • int main(int argv,char*argc[])
  • {
  • system("clear");
  • int sock,nsock, cle = atoi(argc[1]), n;
  • struct sockaddr_in sin;
  • char msg[255], buffer[255];
  • strcpy(msg, argc[2]);
  • for(n = 0; n < (strlen(msg) + 1); n++)
  • {
  • buffer[n] = msg[n] ^ cle;
  • }
  • sin.sin_family = AF_INET;
  • sin.sin_addr.s_addr = INADDR_ANY;
  • sin.sin_port = htons(atoi(argc[1]));
  • bzero(&(sin.sin_zero),8);
  • sock = socket(AF_INET,SOCK_STREAM,0);
  • printf(" port %s en écoute...\n", argc[1]);
  • bind(sock, (struct sockaddr *)&sin, sizeof(struct sockaddr));
  • listen(sock,50);
  • while(1)
  • {
  • int sin_size = sizeof(struct sockaddr_in);
  • nsock = accept(sock,(struct sockaddr *)&sin,&sin_size);
  • printf(" connection de %s sur le port %s\n",inet_ntoa(sin.sin_addr),argc[1]);
  • send(nsock,buffer,sizeof(buffer),0);
  • }
  • close(nsock);
  • return 0;
  • }
  • //#######################CLIENT##############################
  • #include <stdio.h>
  • #include <stdlib.h>
  • #include <sys/types.h>
  • #include <sys/socket.h>
  • #include <netinet/in.h>
  • #include <netdb.h>
  • int main(int argv,char*argc[])
  • {
  • system("clear");
  • char buffer[255], mot[255];
  • int sock, cle = atoi(argc[2]), n;
  • struct sockaddr_in sin;
  • sin.sin_family = AF_INET;
  • sin.sin_addr.s_addr = inet_addr(argc[1]);
  • sin.sin_port = htons(atoi(argc[2]));
  • bzero(&(sin.sin_zero),8);
  • sock = socket(AF_INET,SOCK_STREAM,0);
  • printf(" tentative de connection sur %s / %s...\n", argc[1], argc[2]);
  • connect(sock,(struct sockaddr*)&sin,sizeof(struct sockaddr));
  • printf(" connecté %s / %s\n", argc[1], argc[2]);
  • recv(sock,buffer,sizeof(buffer),0);
  • for(n = 0; n < (strlen(buffer) + 1); n++)
  • {
  • mot[n] = buffer[n] ^ cle;
  • }
  • printf(" buffer: %s\n", mot);
  • close(sock);
  • return 0;
  • }
//#######################SERVEUR#########################"
#include <stdio.h>
#include <stdlib.h>
#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <netdb.h>

int main(int argv,char*argc[])
{
 system("clear");

 int sock,nsock, cle = atoi(argc[1]), n;
 struct sockaddr_in sin;

 char msg[255], buffer[255];
 strcpy(msg, argc[2]);
  for(n = 0; n < (strlen(msg) + 1); n++)
  {
   buffer[n] = msg[n] ^ cle;
  }

 sin.sin_family      = AF_INET;
 sin.sin_addr.s_addr = INADDR_ANY;
 sin.sin_port        = htons(atoi(argc[1]));
 bzero(&(sin.sin_zero),8);

 sock = socket(AF_INET,SOCK_STREAM,0);

 printf(" port %s en écoute...\n", argc[1]);
 bind(sock, (struct sockaddr *)&sin, sizeof(struct sockaddr));
 listen(sock,50);

  while(1)
  {
   int sin_size = sizeof(struct sockaddr_in);
   nsock = accept(sock,(struct sockaddr *)&sin,&sin_size);
   printf("  connection de %s sur le port %s\n",inet_ntoa(sin.sin_addr),argc[1]);
   send(nsock,buffer,sizeof(buffer),0);
  }

 close(nsock);
 return 0;
}






//#######################CLIENT##############################
#include <stdio.h>
#include <stdlib.h>
#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <netdb.h>

int main(int argv,char*argc[])
{
 system("clear");

 char buffer[255], mot[255];
 int sock, cle = atoi(argc[2]), n;
 struct sockaddr_in sin;

 sin.sin_family      = AF_INET;
 sin.sin_addr.s_addr = inet_addr(argc[1]);
 sin.sin_port        = htons(atoi(argc[2]));
 bzero(&(sin.sin_zero),8);

 sock = socket(AF_INET,SOCK_STREAM,0);

 printf(" tentative de connection sur %s / %s...\n", argc[1], argc[2]);
 connect(sock,(struct sockaddr*)&sin,sizeof(struct sockaddr));
 printf("  connecté %s / %s\n", argc[1], argc[2]);

 recv(sock,buffer,sizeof(buffer),0);
    for(n = 0; n < (strlen(buffer) + 1); n++)
    {
      mot[n] = buffer[n] ^ cle;
    }
 printf("  buffer: %s\n", mot);

 close(sock);
 return 0;
}

 Conclusion

gcc serveur.c -o serveur
gcc client.c -o client

serveur 1245 coucou!
client 127.0.0.1 1245


 Sources du même auteur

LA LIB POUR FENETRE WIN32
SCANNER DE SERVICES
NET : UTILITAIRE LINUX SOCKETS
Source avec Zip UTILITAIRE RESEAU
Source avec Zip SCANNER DE PORTS OUVERTS (COMMENTÉ)

 Sources de la même categorie

Source avec Zip SERVEUR MULTITHREAD [LINUX/WIN] par nipepsinicolas
Source avec Zip Source avec une capture SECURE REMOTE SHELL [WIN32] par ganjarasta
Source avec Zip Source avec une capture SUIVI DE PRODUCTION ONDULEUR PHOTOVOLTAÏQUE SOLARMAX par brunovan
Source avec Zip MINICHAT MULTI-CLIENT par wisar
SOCKET CPP par baptchr55

Commentaires et avis

Commentaire de surfeurnet le 25/06/2003 17:26:23

avec des commentaires se serait pas mieux, sinon c clair
@++

Commentaire de berimbo le 30/06/2003 15:00:33

a quoi correspondent les methodes sin_port, sin_addr et sin_family
(désolé, je débute)

Commentaire de Narcissus le 10/07/2003 18:19:43

salut, j'ai besoin des fichiers d'en tête que tu as utilisé pour réaliser ce programme.
merci

Commentaire de Krox68 le 10/07/2003 19:34:24

ba fo avoir linux et gcc

Commentaire de GFACTION le 04/11/2003 22:18:31

Ben pour windows, prends winsock2.h

Commentaire de BlackGoddess le 13/11/2003 20:02:47

a quoi correspondent les methodes sin_port, sin_addr et sin_family
(désolé, je débute)

=&gt; son programme est écrit en C, qui ne contient pas d'objets, donc pas de méthodes.

struct sockaddr_in sin; =&gt; sockaddr_in est une structure, c'est un groupement de variables (comme les Type ... End Type en vb)
sin_port, sin_addr et sin_family sont des variables de ce groupement.

 Ajouter un commentaire




Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

Photothèque

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 1,154 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales