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

 

 


Tema destacado: Estamos en la red social de Mastodon


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  Codificador [C++]
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Codificador [C++]  (Leído 2,974 veces)
ianmorar03

Desconectado Desconectado

Mensajes: 43



Ver Perfil
Codificador [C++]
« en: 7 Agosto 2017, 08:02 am »

Buenas!
Vengo otra vez a molestar como siempre jaja, he estado haciendo un pequeño programa en C++ que me codifique una palabra, lo estoy haciendo con vectores, un vector para el alfabeto y otro para la clave, ejemplo:

vector del alfabeto:
A B C D E...
0 1 2 3 4...

vector para la clave:
! 2 6 & $...
0 1 2 3 4...

Pero a la hora de codificar no se como hacer el método que haga la tarea, dejo un ejemplo:

palabra a codificar:
C A E
0 1 2

resultado:
6 ! $
0 1 2
ocupo que me imprima la palabra codificada, si serian tan amables de explicarme solo el metodo para codificar ;D



« Última modificación: 8 Agosto 2017, 02:05 am por ianmorar03 » En línea

Aquellos que estan locos como para pensar que pueden cambiar el mundo , son los que lo hacen.
ivancea96


Desconectado Desconectado

Mensajes: 3.412


ASMático


Ver Perfil WWW
Re: Codificador [C++]
« Respuesta #1 en: 7 Agosto 2017, 12:54 pm »

Hay infinitos métodos para codificar. Usa el que quieras, haz lo que quieras con lo cual la palabra se quede cifrada y sea decodificable luego.

Si la pregunta es acerca de algún método famoso, pues, tienes el método XOR, que no es más que utilizar el operador XOR con cada par de caracteres de la palabra a cifrar y de la clave:
Código
  1. char cifrado = texto[i] ^ clave[i];
Dadas las propiedades del XOR, la decodificación es exactamente el mismo paso: aplicar el XOR de nuevo.
https://es.wikipedia.org/wiki/Cifrado_XOR

Luego, tienes otros 2 conocidos, el cifrado César y el cifrado Vigenère. En el César, la clave es 1 letra. En el Vigenère, un conjunto de letras (recalco letras porque no se puede hacer con símbolos).
El Vigenère es exactamente lo mismo que el César, solo que vas cambiando la letra.

Estos no los explico, te queda a ti descubrirlos :p
https://es.wikipedia.org/wiki/Cifrado_C%C3%A9sar
https://es.wikipedia.org/wiki/Cifrado_de_Vigen%C3%A8re


Edito:
Ah, que ya tienes el método para codificar xD


« Última modificación: 7 Agosto 2017, 16:09 pm por ivancea96 » En línea

MAFUS


Desconectado Desconectado

Mensajes: 1.603



Ver Perfil
Re: Codificador [C++]
« Respuesta #2 en: 7 Agosto 2017, 16:06 pm »

strchr es la función que buscas. Devuelve la posición de memoria de la primera aparición de un carácter en una cadena.

Sea ABCDE... tu cadena base, la que te dará el índice según el carácter actual de tu cadena a codificar.
Sea !26&$... tu cadena código que tiene los caracteres codificados.
Debes pasarle a strchr dicha cadena base y el susodicho carácter, entonces strchr te devolverá una posición de memoria del mismo carácter dentro de la cadena base.
Haciendo uso de la aritmética de punteros debes restar dicha posición de memoria con la dirección de la misma cadena base. Esto te dará un número natural. A este número natural, que deberás hacer un cast a size_t para que el compilador no se queje, se lo das como índice a la cadena código.
En este momento ya tienes el carácter codificado.
En línea

ianmorar03

Desconectado Desconectado

Mensajes: 43



Ver Perfil
Re: Codificador [C++]
« Respuesta #3 en: 8 Agosto 2017, 02:07 am »

 @MAFUS , @ivancea96 muchas gracias por sus aportes, me sirvieron mucho!
Pero decidi hacerlo diferente:
Código
  1. cout << "Inserte la palabra que quiera codificar > ";
  2. string palabraCod;
  3. char cadena[50];
  4. getline(cin, palabraCod);
  5. cout << palabraCod;
  6. int len = palabraCod.length();
  7. cout << "\nEl tamanio de la palabra es: " << len << endl;
  8. for (int i = 0; i < palabraCod.length(); i++) {
  9.    cadena[i] = palabraCod[i];
  10.    cout << cadena[i];
  11. }
  12. cout << endl;
  13. int letrasEncontradas[50];
  14. for (int j = 0; j < len; j++) {
  15. for (int k = 0; k < 27; k++) {
  16. if (cadena[j] == alfabeto[k]) {
  17. letrasEncontradas[j] = k+1;
  18. palabra[j] = clave[k];
  19. cout << clave[k];
  20. }
  21. }
  22. }
  23.  
« Última modificación: 8 Agosto 2017, 04:52 am por ianmorar03 » En línea

Aquellos que estan locos como para pensar que pueden cambiar el mundo , son los que lo hacen.
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Codificador de base64 en python
Scripting
SBlast 0 5,481 Último mensaje 24 Noviembre 2007, 23:04 pm
por SBlast
[Batch] Codificador de shellcodes
Scripting
lShadowl 0 3,527 Último mensaje 27 Febrero 2011, 00:29 am
por lShadowl
Codificador de mensagens!!! =]
Programación C/C++
didinho 0 1,847 Último mensaje 26 Diciembre 2011, 14:44 pm
por didinho
Codificador
Scripting
jalbtercero 1 1,964 Último mensaje 26 Mayo 2016, 04:50 am
por AlbertoBSD
Codificador para archivos por lotes
Software
Aspidiske 0 1,246 Último mensaje 8 Octubre 2017, 18:33 pm
por Aspidiske
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines