Ver Mensaje Individual
  #5  
Antiguo 22-10-2015
Avatar de escafandra
[escafandra] escafandra is offline
Miembro Premium
 
Registrado: nov 2007
Posts: 2.210
Reputación: 22
escafandra Tiene un aura espectacularescafandra Tiene un aura espectacular
Prueba así:
Código PHP:
string Vigenere::cifrar(string origstring sem){
   
string final;
   
int irotaciontotal;
   
int pospos2;
   
//Las variables serviran para registrar la posicion
   //de las letras y calcular la semilla

   
this->texto limpiar(orig);
   
this->semilla limpiar(sem);

   for(
i=0texto.length(); i++){
      
rotacion i%semilla.length();
      
pos letras.find(texto.at(i));
      
pos2 letras.find(semilla.at(rotacion));
      
total = (pos+pos2)%letras.length();
      
//El total que marca la posicion de la letra y la
      //semilla sumadas

      
final.append(letrastotal1);
   }
   return final;
}


string Vigenere::descifrar(string origstring sem){
   
//La funcion es exactamente la misma que en el metodo
   //cifrar, solo que aqui las posiciones se restan para
   //eliminar la semilla del texto

   
string final;
   
int irotaciontotal;
   
int pospos2;

   
this->texto limpiar(orig);
   
this->semilla limpiar(sem);

   for(
i=0i<texto.length(); i++){
      
rotacion i%semilla.length();
      
pos letras.find(texto.at(i));
      
pos2 letras.find(semilla.at(rotacion));
      
total = (letras.length() + pos pos2) % letras.length();

      final.
append(letrastotal1);
   }
   return final;

Saludos.

PD/ Cuidado con la salida por consola, algunos caracteres pueden salir cambiados.

Última edición por escafandra fecha: 22-10-2015 a las 02:14:07.
Responder Con Cita