Underc0de

ProgramaciĆ³n General => C / C++ => Topic started by: Zackonit on May 10, 2022, 02:32:56 am

Title: Cifrado cesar con C
Post by: Zackonit on May 10, 2022, 02:32:56 am
Code: (c) You are not allowed to view links. Register or Login


Buenas tardes sean a todos , pues he estado viendo muchos cifrados en internet pero ninguno me convence o de plano para lo que recien se inician en el lenguaje C es complicado de leer ,asi que les traigo el cifrado cesar usando arrays
y punteros ,pueden mejorar el codigo y ponerlo abajo el objetivo de esto es aprender tecnicas

[color=green]Bueno mucho blablabla ,aqui el code [/color]

#include <stdio.h>

void caesarCipher(int key, char *keyword,int size);

int main(int argc,char const *argv[]){
        char msg[4] = "hola";
        char *keyword = &msg;
        caesarCipher(3,keyword,4);
        return 0;
}

void caesarCipher(int key ,char *keyword,int size){
        char abc[26] = {'a','b','c','d','e',
                        'f','g','h','i','j',
                        'k','l','m','n','o',
                        'p','q','r','s','t',
                        'u','v','w','x','y',
                        'z'};
int buffersize = sizeof(abc)/sizeof(abc[0]);
int z=0;

for(int i=0;i<size;i++){
for(int j=0;j<buffersize;j++){
if(keyword[i] == abc[j]){
   z = j+key;
           printf("%c",abc[z]);    
   if(z > buffersize){
   printf("%c",abc[z-buffersize]);

   }
}
}
}
}


Title: Re: Cifrado cesar con C
Post by: animanegra on May 10, 2022, 07:58:06 am
puedes no tener que utilizar una liista de letras haciendo un cast a int y despues casteando de nuevo a char.

Algo asi:

Code: You are not allowed to view links. Register or Login
cifrado[i]=(char)(69+((((int)limpio[i]))-69)+key);
Title: Re: Cifrado cesar con C
Post by: Zackonit on May 10, 2022, 03:46:58 pm
You are not allowed to view links. Register or Login
puedes no tener que utilizar una liista de letras haciendo un cast a int y despues casteando de nuevo a char.

Algo asi:

Code: You are not allowed to view links. Register or Login
cifrado[i]=(char)(69+((((int)limpio[i]))-69)+key);

Podrias subir el code de tu solucion para poder examinarla con detenimiento?