Club Builder - Foros de discusión Club Builder
Foro de C++Builder en español
 
 FAQFAQ   BuscarBuscar   MiembrosMiembros   Grupos de UsuariosGrupos de Usuarios   RegistrarseRegistrarse 
 PerfilPerfil   Entra para ver tus mensajes privadosEntra para ver tus mensajes privados   EntrarEntrar 

Rutina de encriptación
Ir a página Anterior  1, 2
 
Publicar nuevo tema   Responder al tema    Foros de discusión -> Tips & Tricks
Ver tema anterior :: Ver tema siguiente  
Autor Mensaje
Mensaje    Asunto: Responder citando

Traduciendo esta función a Java, me he dado cuenta que el código se puede quedar así...

Código:
AnsiString Encriptar(unsigned char *cVariable)
{
   AnsiString resultado="";
   int  que_clave[6] = {16,21,27,19,21,17};
   int aux;
   for(int i = 0, y = 0; i < strlen(cVariable);i++,y++) {
        if (y>5) y = 0;
        aux = cVariable[i] ^ que_clave[y];
        resultado+=CHAR(aux);
   }
   return resultado;
}
Volver arriba
Ver perfil de usuario Enviar mensaje privado Enviar email
Mensaje    Asunto: Responder citando

Angel,

Este código lo uso para el XE3 y va perfecto, pero estoy haciendo pruebas en el XE10 y da este error:

[bcc32 Error] Main.cpp(219): E2015 Ambiguity between 'std::pow(long double,int)' and 'std::pow(double,int)'

En esta linea:

nValor += StrToInt(cBin2.SubString(j,1)) * pow(2, (j - 1));

Se te ocurre que puede ser?

Un saludo.

Carlos

Edito:

Me acabo de fijar en el mensaje de rockman2003 y va compila bien, aun no lo he probado pero si funciona seria suficiente.
_________________
Carlos J. Fernandez
Volver arriba
Ver perfil de usuario Enviar mensaje privado Enviar email
Mensaje    Asunto: Responder citando

Hola Carlos, puedes probar cambiando el 2 por 2.0
Volver arriba
Ver perfil de usuario Enviar mensaje privado
Mensaje    Asunto: Responder citando

_Leo escribió:
Hola Carlos, puedes probar cambiando el 2 por 2.0


Leo,

Jejeje perfecto

Muchas gracias amigo.

Carlos
_________________
Carlos J. Fernandez
Volver arriba
Ver perfil de usuario Enviar mensaje privado Enviar email
Mensaje    Asunto: Responder citando

Sigo con el tema de la encripyación (¡mira que lleva años esto vivo!). Buscando en un blog sobre Firebird he ido a dar con un código bastante interesante. Lo he adaptado a Builder y me queda así:
Código:
AnsiString Encriptar(AnsiString Texto, char Modo)
{
     AnsiString Salida = "";
     int nNv;
     unsigned char Clave[] = "891475632847596";
     unsigned char Repite[] = "7915317786";
     unsigned char *cTexto = Texto.c_str();

     for (int i = 0, y = 0, z = 0; i < strlen(cTexto); i ++, y ++, z ++)
     {
          if (y > strlen(Clave))
                y = 0;

          if (z > strlen(Repite))
                z = 0;

          nNv = (char(cTexto[i]) + ((2 * Modo - 137) * (Clave[y] - 48) * (Repite[z] - 48))) % 256;
          nNv = (nNv < 0 ? 256 : 0) + nNv;
          Salida += char(nNv);
     }
     return Salida;
}

El Modo que se declara en la función indica que hay que hacer: Si se pasa E encripta la cadena Texto; si se pasa D la desencripta. Así, por ejemplo, con esos valores que están ahí declarados si Texto vale Ángel Matilla C devuelve ù¿hy%wv„™¬´)a, y si pasamos esta última cadena como valor nos devuelve Ángel Matilla C.

En el blog viene explicado como funciona la rutina.
_________________
Un saludo

Necesitamos tu ayuda: Envía AI al 27595 (Coste 1,20 euros + IVA)
Volver arriba
Ver perfil de usuario Enviar mensaje privado Enviar email
Mostrar mensajes de anteriores:   
Cambiar a:  
No puedes publicar temas nuevos en este foro
No puedes responder a temas en este foro
No puedes editar tus mensajes en este foro
No puedes borrar tus mensajes en este foro
No puedes votar en las encuestas de este foro


Hosting WordPress Indedmedia desde 3,99 €
© 2002–2026 Club Builder · Funciona con phpBB.