Autor
|
Tema: Aporte c++ (Leído 5,132 veces)
|
Stakewinner00
|
Estoy creando una encriptador en c++ y quisiera saber su opinion haber k les parece y como puedo mejorarlo. Los numeros con los que se cifra son aleatorios para evitar que alguien tenga una pequeña chuleta con todo el abecedario y lo k coresponde. Nose demasiado de criptografia, por lo que puede que hayan bastantes fallos logicos. Bueno aqui esta el codigo. //Created by STAKEWINNER00 #include <iostream> #include <cstdlib> #include <ctime> using namespace std; //FUNCION QUE GENERA UN NUMERO ALEATORIO int ran(){ srand((int)time(NULL)); int num; num = (rand()%50)+1; } int num=ran(); //ENCRIPTACION CON EL SISTEMA PROPIO int CR1 (char mens) { char letra; cout << endl << "Mensaje cifrado::"; letra = 'D' + num; letra = letra + 'D'; cout << letra; while (mens!=';') { letra = mens + num; letra = letra + 'D'; cin >> mens; cout << letra; if ((mens<31)&&(mens>0)||(mens>127)) { cout << ":::"; num=ran(); } } cout << endl << endl; system("PAUSE >> NUL"); } int RCR1 (char mens) { char letra; char nu; int i=0; cout << endl << "Mensaje cifrado::"; letra=mens - 'D'; while (nu!='D') { i++; cout << 50-i; system("CLS"); nu = letra - i; } cin >> mens; while (mens!=';') { letra = mens - 'D'; letra = letra - i; cin >> mens; cout << letra; num=ran();} cout << endl << endl; system("PAUSE >> NUL"); } //ENCRIPTACION CON EL SISTEMA PROPIO CON EL SEGUNDO METODO int CR1M2 (char mens) { char letra; char num2; num2=1+rand()%(200-1); cout << endl << "Mensaje cifrado::"; while (mens!=';') { letra = 'D' + num; letra = letra + 'D'; cout << letra; letra = mens + num; letra = letra + 'D'; letra = letra - num2; cin >> mens; cout << letra << num2; num=1+rand()%(50-1); } cout << endl << endl; system("PAUSE >> NUL"); } int RCR1M2 (char mens) { char letra; char nu; int i=0; cout << endl << "Mensaje descifrado::"; while (mens!=';') { i=0; letra=mens - 'D'; while (nu!='D') { i++; nu = letra - i; } nu =NULL; cin >> mens; letra = mens - 'D'; letra = letra - i; cin >> mens; letra = letra + mens; cin >> mens; cout << letra; } cout << endl <<endl; system("PAUSE >> NUL"); } //ENCRIPTACION Y DESNECRIPTACION EN CESAR void desencript (char mens, int n) { char letra; cout << endl << endl << "Mensaje descifrado::"; while (mens!=';') { letra=mens-n; cin >> mens; cout << letra; } cout << endl << endl; system("PAUSE >> NUL"); } int encript (char mens, int n) { char letra; cout << endl << "Mensaje cifrado::"; while (mens!=';') { letra=mens+n; cin >> mens; cout << letra; } cout << endl << endl; system("PAUSE >> NUL"); } //MAIN int main() { int opcion; char mens; int n; a: system("CLS"); cout << "1.cifrar (CESAR)" << endl << "2.descifrar (CESAR)" << endl << "3.cifrar (CR1)" << endl << "4.descifrar (CR1)" <<endl << "5.cifrar (CR1M2)" << endl << "6.descifrar (CR1M2)"<< endl<<endl<<">>"; cin >> opcion; if ((opcion==1)||(opcion==2)) { cout << endl<<"NUMERO DE SALTOS-->"; cin >> n; } switch(opcion) { case 1:cout << "MENSAJE-->";cin>>mens;encript(mens,n);goto a; case 2:cout << "MENSAJE-->";cin>>mens;desencript(mens,n);goto a; case 3:cout << "MENSAJE-->";cin>>mens;CR1(mens);goto a; case 4:cout << "MENSAJE-->";cin>>mens;RCR1(mens);goto a; case 5:cout << "MENSAJE-->";cin>>mens;CR1M2(mens);goto a; case 6:cout << "MENSAJE-->";cin>>mens;RCR1M2(mens);goto a; } }
|
|
« Última modificación: 31 Agosto 2012, 18:08 pm por Stakewinner00 »
|
En línea
|
|
|
|
xiruko
Desconectado
Mensajes: 438
|
una pregunta que no tiene que ver con el codigo en si... yo no se casi nada de criptografia, pero si cifras algo con numeros aleatorios, como lo descifras luego? no lo entiendo ya que, por ejemplo, 1 mismo texto dara distintas formas cuando este cifrado, pero como haces para que todas acaben en 1 misma manera (texto original) al descifrarlo?
gracias por la ayuda, un saludo!
|
|
|
En línea
|
|
|
|
farresito
Desconectado
Mensajes: 302
|
una pregunta que no tiene que ver con el codigo en si... yo no se casi nada de criptografia, pero si cifras algo con numeros aleatorios, como lo descifras luego? no lo entiendo ya que, por ejemplo, 1 mismo texto dara distintas formas cuando este cifrado, pero como haces para que todas acaben en 1 misma manera (texto original) al descifrarlo?
gracias por la ayuda, un saludo!
Lo mismo me pregunto yo. Un cifrador que no puede descifrar? Vaya...
|
|
|
En línea
|
|
|
|
Stakewinner00
|
SI se puede revertir el primer caracter es la letra D cifrada con el numero aleatorio solo hay 50 posibilidades por lo k prueba los 50 numeros y cuando uno da D luego con el mismo numero descifra los otros caracteres asta conseguir el hola por ejemplo, lo e estadi probando y no da muchos problemas. Si quieren pueden probarlo aki esta esa parte antes de criticar podeis mirar el code pero ya esta bien k alguien critique mi programa letra = 'D' + num; letra = letra + 'D'; cout << letra;
|
|
|
En línea
|
|
|
|
farresito
Desconectado
Mensajes: 302
|
SI se puede revertir el primer caracter es la letra D cifrada con el numero aleatorio solo hay 50 posibilidades por lo k prueba los 50 numeros y cuando uno da D luego con el mismo numero descifra los otros caracteres asta conseguir el hola por ejemplo, lo e estadi probando y no da muchos problemas. Si quieren pueden probarlo aki esta esa parte antes de criticar podeis mirar el code pero ya esta bien k alguien critique mi programa letra = 'D' + num; letra = letra + 'D'; cout << letra; No iba con ofensa; todo lo contrario. Lo que pasa es que yo no estoy para leerme detalladamente todos los códigos, como comprenderás. Leo tu explicación y esta es la conclusión que saco. Por cierto, para el bien de todo el mundo, incluido el tuyo, formatea el código (pone los tabs y alinéalo bien). Prueba este link. Si no recuerdo mal, lo he usado más de una vez y me ha funcionado: http://www.prettyprinter.de/
|
|
|
En línea
|
|
|
|
xiruko
Desconectado
Mensajes: 438
|
antes de criticar podeis mirar el code pero ya esta bien k alguien critique mi programa como dice farresito yo tampoco lo decia para ofender ni nada, y como dije en mi post no se casi nada de criptografia y por eso preguntaba... en fin, me apunto la manera de hacerlo y la probare. un saludo!
|
|
|
En línea
|
|
|
|
avesudra
Desconectado
Mensajes: 724
Intentando ser mejor cada día :)
|
Está bastante bien pero piensa que no cumple con su prometido , es decir cualquier persona que tenga tu clase puede descifrar un mensaje , en el subforo de criptografía hay un taller y un manual de APOKLIPTICO bastante buenos por si quieres echarle una ojeada, eso sí son complicados. Yo hace no mucho hice un encriptador pero que se basaba en criptografía simetrica y ademas el algoritmo me lo habia inventado yo( era malillo) , consistia en cifrar el texto plano con la contraseña que quieras y al que se lo mandes lo descifra con esa contraseña.Pero bueno a pesar de la critica esa, has tenido una muy buena idea y además has implementado el cifrado cesar o sea que muy bien!
¡Un saludo!
|
|
|
En línea
|
Regístrate en
|
|
|
Stakewinner00
|
Está bastante bien pero piensa que no cumple con su prometido , es decir cualquier persona que tenga tu clase puede descifrar un mensaje , en el subforo de criptografía hay un taller y un manual de APOKLIPTICO bastante buenos por si quieres echarle una ojeada, eso sí son complicados. Yo hace no mucho hice un encriptador pero que se basaba en criptografía simetrica y ademas el algoritmo me lo habia inventado yo( era malillo) , consistia en cifrar el texto plano con la contraseña que quieras y al que se lo mandes lo descifra con esa contraseña.Pero bueno a pesar de la critica esa, has tenido una muy buena idea y además has implementado el cifrado cesar o sea que muy bien!
¡Un saludo!
Ya lo mirare Gracias
|
|
|
En línea
|
|
|
|
Stakewinner00
|
No iba con ofensa; todo lo contrario. Lo que pasa es que yo no estoy para leerme detalladamente todos los códigos, como comprenderás. Leo tu explicación y esta es la conclusión que saco. Por cierto, para el bien de todo el mundo, incluido el tuyo, formatea el código (pone los tabs y alinéalo bien). Prueba este link. Si no recuerdo mal, lo he usado más de una vez y me ha funcionado: http://www.prettyprinter.de/Ok voy a probarlo
|
|
|
En línea
|
|
|
|
|
Mensajes similares |
|
Asunto |
Iniciado por |
Respuestas |
Vistas |
Último mensaje |
|
|
pequeño aporte(proxy),pero aporte al fin.:D
Programación Visual Basic
|
Tengu
|
0
|
2,605
|
22 Julio 2007, 17:33 pm
por Tengu
|
|
|
Aporte
Ingeniería Inversa
|
R6ID
|
0
|
2,369
|
28 Febrero 2008, 11:35 am
por R6ID
|
|
|
Aporte-Duda DownNET
.NET (C#, VB.NET, ASP)
|
d1dac
|
3
|
2,705
|
7 Noviembre 2012, 16:06 pm
por Keyen Night
|
|
|
[Aporte] Aporte
Programación C/C++
|
Stakewinner00
|
3
|
2,787
|
14 Noviembre 2012, 16:39 pm
por Stakewinner00
|
|
|
Fondo Blur GDI+ [Aporte]
.NET (C#, VB.NET, ASP)
|
Keyen Night
|
0
|
2,198
|
18 Noviembre 2012, 03:10 am
por Keyen Night
|
|