elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado:


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  Como cifrar letra por letra en C++
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: 1 [2] 3 4 5 6 7 Ir Abajo Respuesta Imprimir
Autor Tema: Como cifrar letra por letra en C++  (Leído 65,066 veces)
Royca3

Desconectado Desconectado

Mensajes: 45



Ver Perfil WWW
Re: Como cifrar letra por letra en C++
« Respuesta #10 en: 10 Junio 2013, 22:10 pm »

Gracias amigo pero me confundí yo utilizo C  :) Pero bueno, oye Como le hago para que coja la palabra que el usuario ingresa y la cambie por otras letras (especificadas por mi) Gracias

Saludos.


En línea

Homo erectus
cypascal

Desconectado Desconectado

Mensajes: 42


Ver Perfil WWW
Re: Como cifrar letra por letra en C++
« Respuesta #11 en: 10 Junio 2013, 22:46 pm »

Aquí te dejo el que hice yo en su día, que trabaja con ficheros de texto. Se puede seleccionar el paso del cifrado, y tiene en cuenta que que cuando se llega a la Z se tiene que volver a empezar por la A.

También está en esta dirección:
http://cypascal.blogspot.com.es/2013/04/cifrado-cesar-en-c.html


Código:
/*CIFRADO CESAR EN C/C++*/

/*Este programa se va a usar para llevar a cabo una codificación de un fichero
de texto, mediante el codificado CESAR, que es uno de los métodos más simples
de cifrar.
La variable trans==translación de cifrado, es la que indica cuantas letras
se va a correr el abecedario hacia la derecha. Ejemplo:
      trans=3
      c1=Caracter decodificado
      c2=Caracter codificado
      c2=c1+trans
      Entonces en nuestro caso si c1='A'
      c2='A'+3='D'

El programa solo codifica letras, tanto mayúsculas como minúsculas:
del ASCII 65 ('A') al 90 ('Z') y del 97 ('a') al 122 ('z').
*/

#include <stdio.h>
#include <string.h>

int main(void)
{
 FILE *dat1,*dat2;
 char nombre1[50],nombre2[50],c;
 int trans;
 
 printf("Seleccione translacion de encriptacion: "); scanf("%d", &trans);
 printf("Nombre del fichero a codificar: "); scanf("%s", &nombre1);
 printf("Nombre del fichero donde guardar codificado: "); scanf("%s", &nombre2);
 
 
 if (fopen(nombre1,"r")==NULL)
  printf("\nEl fichero no existe.\n\n");
 else
    {
  dat1=fopen(nombre1,"r");/*Se abre en modo lectura*/
  dat2=fopen(nombre2,"w");/*Se abre en modo escritura*/
  fscanf(dat1,"%c",&c);
  while (!feof(dat1))
  {
   /*Se codifica el caracter*/
   if ((c>='A')&&(c<='Z'))
   {
                c=((c+trans-'A')%('Z'-'A'+1))+'A';           
            }
            else if ((c>='a')&&(c<='z'))
            {
                c=(c+trans-'a')%('z'-'a'+1)+'a';
            }
           
   /*Se escribe el caracter en el codificado*/
   fprintf(dat2,"%c",c);
   
   /*Se lee un nuevo caracter*/
   fscanf(dat1,"%c",&c);
  }
  fclose(dat1);
  fclose(dat2);/*Se cierran ambos ficheros*/
 }
}

Salu10 y bienvenido


En línea

Problemas interesantes de programación en C/C++ y Pascal en:
BLOG C/C++


WWW.CYPASCAL.BLOGSPOT.COM.ES
Royca3

Desconectado Desconectado

Mensajes: 45



Ver Perfil WWW
Re: Como cifrar letra por letra en C++
« Respuesta #12 en: 10 Junio 2013, 23:13 pm »

Aquí te dejo el que hice yo en su día, que trabaja con ficheros de texto. Se puede seleccionar el paso del cifrado, y tiene en cuenta que que cuando se llega a la Z se tiene que volver a empezar por la A.

También está en esta dirección:
http://cypascal.blogspot.com.es/2013/04/cifrado-cesar-en-c.html


Código:
/*CIFRADO CESAR EN C/C++*/

/*Este programa se va a usar para llevar a cabo una codificación de un fichero
de texto, mediante el codificado CESAR, que es uno de los métodos más simples
de cifrar.
La variable trans==translación de cifrado, es la que indica cuantas letras
se va a correr el abecedario hacia la derecha. Ejemplo:
      trans=3
      c1=Caracter decodificado
      c2=Caracter codificado
      c2=c1+trans
      Entonces en nuestro caso si c1='A'
      c2='A'+3='D'

El programa solo codifica letras, tanto mayúsculas como minúsculas:
del ASCII 65 ('A') al 90 ('Z') y del 97 ('a') al 122 ('z').
*/

#include <stdio.h>
#include <string.h>

int main(void)
{
 FILE *dat1,*dat2;
 char nombre1[50],nombre2[50],c;
 int trans;
 
 printf("Seleccione translacion de encriptacion: "); scanf("%d", &trans);
 printf("Nombre del fichero a codificar: "); scanf("%s", &nombre1);
 printf("Nombre del fichero donde guardar codificado: "); scanf("%s", &nombre2);
 
 
 if (fopen(nombre1,"r")==NULL)
  printf("\nEl fichero no existe.\n\n");
 else
    {
  dat1=fopen(nombre1,"r");/*Se abre en modo lectura*/
  dat2=fopen(nombre2,"w");/*Se abre en modo escritura*/
  fscanf(dat1,"%c",&c);
  while (!feof(dat1))
  {
   /*Se codifica el caracter*/
   if ((c>='A')&&(c<='Z'))
   {
                c=((c+trans-'A')%('Z'-'A'+1))+'A';           
            }
            else if ((c>='a')&&(c<='z'))
            {
                c=(c+trans-'a')%('z'-'a'+1)+'a';
            }
           
   /*Se escribe el caracter en el codificado*/
   fprintf(dat2,"%c",c);
   
   /*Se lee un nuevo caracter*/
   fscanf(dat1,"%c",&c);
  }
  fclose(dat1);
  fclose(dat2);/*Se cierran ambos ficheros*/
 }
}

Salu10 y bienvenido


Este code lo que hace es buscar un archivo y "encriptarlo" verdad?
Lo que yo necesito es un programa que pida una palabra o frase y que cambie las letras ejemplo A por H b por X y asi entiendes?

Pero igual Gracias

saludos.
En línea

Homo erectus
cypascal

Desconectado Desconectado

Mensajes: 42


Ver Perfil WWW
Re: Como cifrar letra por letra en C++
« Respuesta #13 en: 10 Junio 2013, 23:20 pm »

Ups!, perdón, pensaba que estábamos con Cesar.
Pero no me queda claro, ¿Qé método de cifrado quieres utilizar?

Salu10
En línea

Problemas interesantes de programación en C/C++ y Pascal en:
BLOG C/C++


WWW.CYPASCAL.BLOGSPOT.COM.ES
CCross

Desconectado Desconectado

Mensajes: 36


Ver Perfil
Re: Como cifrar letra por letra en C++
« Respuesta #14 en: 10 Junio 2013, 23:28 pm »

Buenas amigos!!

Aqui otra versión del cifrado cesar donde tu puedes indicar el desplazamiento que quieras

Código
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3.  
  4. int main()
  5. {
  6.     int des, i = 0, j = 0;
  7.     char cadena[30] = {0};
  8.  
  9.     printf("Introduce una cadena: ");
  10.     scanf("%s", cadena);
  11.  
  12.     printf("Ingrese desplazamiento: ");
  13.     scanf(" %d", &des);
  14.  
  15.     for(; cadena[i]!='\0'; i++)
  16.        cadena[i]+=des;
  17.     printf("\nEncriptado es: %s \n", cadena);
  18.  
  19.     for(; cadena[j]!='\0'; j++)
  20.        cadena[j]-=des;
  21.      printf("\nDesencriptado es: %s \n", cadena);
  22.  
  23.     return 0;
  24. }

Saludos  ;D
« Última modificación: 11 Junio 2013, 00:09 am por CCross » En línea

amchacon


Desconectado Desconectado

Mensajes: 1.211



Ver Perfil
Re: Como cifrar letra por letra en C++
« Respuesta #15 en: 10 Junio 2013, 23:32 pm »

Código
  1. for(; cadena[i]!='\0'; i++)
  2.        cadena[i]+=des;
  3.  
  4. printf("\nEncriptado es: %s \n", cadena);
  5.  
  6. for(; cadena[j]!='\0'; j++)
  7.        cadena[j]-=des;
  8. printf("\nDesencriptado es: %s \n", cadena);

Y digo yo, que necesidad hay de hacer el caso y el inverso:

Código
  1. char cadena_aux[30];
  2.  
  3. for(; cadena[i]!='\0'; i++)
  4. {
  5.        cadena[i]+=des;
  6.        cadena_aux[i] = cadena[i];
  7. }
  8. cadenaaux[i] = '\0';
  9.  
  10. printf("\nEncriptado es: %s  y descifrado es %s\n", cadena,cadena_aux);
  11.  
En línea

Por favor, no me manden MP con dudas. Usen el foro, gracias.

¡Visita mi programa estrella!

Rar File Missing: Esteganografía en un Rar
Royca3

Desconectado Desconectado

Mensajes: 45



Ver Perfil WWW
Re: Como cifrar letra por letra en C++
« Respuesta #16 en: 11 Junio 2013, 00:00 am »

Bueno Alguien que me explique algo  :(
El código de leosansan pero necesito que en lugar de ese método lo cambie por este:
A = X
B = J
C = O
D = P
E = Z
F = W
G = A
H = U
I = Ñ
J=L
K = D
L=Q
M=S
N = F
Ñ=R
O = B
P=M
Q=V
R=H
S=K
T = N
U=Y
V= T
W=I
X  = E
Y= G
Z = C
En línea

Homo erectus
CCross

Desconectado Desconectado

Mensajes: 36


Ver Perfil
Re: Como cifrar letra por letra en C++
« Respuesta #17 en: 11 Junio 2013, 00:04 am »

Y digo yo, que necesidad hay de hacer el caso y el inverso:

Pues para descifrar no y ademas la forma que propones no hace lo deseado ya que la cadena
ya la habias modificado previamente y luego asignas los valores atuales que son los cifrados a
la cadena auxiliar

Saludos  :silbar:
« Última modificación: 11 Junio 2013, 00:08 am por CCross » En línea

cypascal

Desconectado Desconectado

Mensajes: 42


Ver Perfil WWW
Re: Como cifrar letra por letra en C++
« Respuesta #18 en: 11 Junio 2013, 00:05 am »

usa case

salu10
En línea

Problemas interesantes de programación en C/C++ y Pascal en:
BLOG C/C++


WWW.CYPASCAL.BLOGSPOT.COM.ES
amchacon


Desconectado Desconectado

Mensajes: 1.211



Ver Perfil
Re: Como cifrar letra por letra en C++
« Respuesta #19 en: 11 Junio 2013, 00:16 am »

Pues para descifrar no y ademas la forma que propones no hace lo deseado ya que la cadena
ya la habias modificado previamente y luego asignas los valores atuales que son los cifrados a
la cadena auxiliar

Saludos  :silbar:
Huy es verdad  :rolleyes:

Habría que hacer la igualación antes  ;-)
En línea

Por favor, no me manden MP con dudas. Usen el foro, gracias.

¡Visita mi programa estrella!

Rar File Missing: Esteganografía en un Rar
Páginas: 1 [2] 3 4 5 6 7 Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Codificacion en archivos bat, letra ñ
Scripting
santi810 3 12,245 Último mensaje 1 Diciembre 2013, 18:57 pm
por Eleкtro
[DUDA] Como Desactivar Dispositivos Portátiles Para Que Se Le Asigne Una Letra
Windows
KZN 3 2,924 Último mensaje 11 Marzo 2014, 17:00 pm
por Randomize
Dibujar letra 'T'
PHP
luchi 2 2,393 Último mensaje 20 Abril 2014, 22:14 pm
por luchi
Como con una letra direccionarme a la tabla/registro?
Programación C/C++
enzopaez14 1 2,115 Último mensaje 5 Septiembre 2016, 02:50 am
por AlbertoBSD
Comparar letra una letra en un array, con una letra del abcdario
Programación C/C++
Naimaderis 2 3,970 Último mensaje 10 Marzo 2017, 04:24 am
por Naimaderis
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines