Data de publicació: Dec 02, 2011 9:8:3 PM
#include <stdio.h>
#include <string.h>
#define CAR_BASE 33
#define CAR_FIN 255
/************************************************************
* Encripta utilitzant un password
************************************************************/
void vector_a_nul(char v[]){
int i,long_v;
long_v=strlen(v);
for (i=0;i<long_v;i++) v[i]=0;
}
char encripta(char sms[],char sms_enc[],char password[]){
int i,j=0;
int long_sms, long_pass;
int NUMCAR = CAR_FIN - CAR_BASE;
long_sms=strlen(sms);
long_pass=strlen(password);
for (i=0;i<long_sms;i++)
sms_enc[i]=(((sms[i]-CAR_BASE)+(password[j++%long_pass]-CAR_BASE)%NUMCAR)%NUMCAR)+CAR_BASE;
sms_enc[long_sms]=0;
}
char desencripta(char sms_enc[],char sms_des[],char password[]){
int i,j=0;
int long_sms, long_pass;
int NUMCAR = CAR_FIN - CAR_BASE;
long_sms=strlen(sms_enc);
long_pass=strlen(password);
for (i=0;i<long_sms;i++)
sms_des[i]=(((sms_enc[i]-CAR_BASE)-(password[j++%long_pass]-CAR_BASE)%NUMCAR)%NUMCAR)+CAR_BASE;
sms_des[long_sms]=0;
}
void main(){
char sms[145]="Hola, que tal estas, caracandao, meló i boniato?";
char sms_enc[145];
char sms_des[145];
char password[9]="s#a345!8)";
vector_a_nul(sms_enc);
vector_a_nul(sms_des);
printf("Missatge a encriptar:\n");
scanf("%s",sms);
printf("\n%s\n",sms);
printf("Password:\n");
scanf("%s",password);
printf("\n%s\n",password);
encripta(sms,sms_enc,password);
printf("\nMissatge encriptat\n");
printf("%s\n",sms_enc);
desencripta(sms_enc,sms_des,password);
printf("\nMissatge desencriptat des de el missatge encriptat:\n");
printf("%s\n",sms_des);
}