Exemple #1
0
 Respuesta clonar() {
   Respuesta nueva = new Respuesta();
   nueva.o = o;
   nueva.i = i;
   nueva.e = e;
   return nueva;
 }
Exemple #2
0
 static Respuesta dp(int a, int b) {
   if (a == n || b == s) return new Respuesta();
   if (dp[a][b] != null) return dp[a][b];
   Respuesta r = new Respuesta();
   if (norte[a].tipo.equals(sur[b].tipo)) {
     if (a != n - 1 && b != s - 1) r.mejorar(dp(a + 1, b + 1));
     if (norte[a].valor + sur[b].valor > 0) {
       r.valor += norte[a].valor + sur[b].valor;
       r.numero++;
     }
   }
   if (a != n - 1) r.mejorar(dp(a + 1, b));
   if (b != s - 1) r.mejorar(dp(a, b + 1));
   return dp[a][b] = r;
 }
  public static Respuesta codigoVerificacion(String codigo) {
    Respuesta retorno = new Respuesta();

    String md5Hash = "";
    try {
      MessageDigest md = MessageDigest.getInstance("MD5");
      md.update(codigo.getBytes());

      byte byteData[] = md.digest();

      // convert the byte to hex format method 1
      StringBuffer sb = new StringBuffer();
      for (int i = 0; i < byteData.length; i++) {
        sb.append(Integer.toString((byteData[i] & 0xff) + 0x100, 16).substring(1));
      }

      md5Hash = sb.toString();

      retorno.setOk(true);
      retorno.setDescripcion("Código verificación: " + md5Hash);
      retorno.setObjeto(md5Hash);
    } catch (Exception e) {
      retorno.setOk(false);
      retorno.setDescripcion("Error al generar el código de verificación\n" + e);
      retorno.setError(true);
    }
    return retorno;
  }
  public static Respuesta hash(String password) throws Exception {
    Respuesta retorno = new Respuesta();

    String md5Hash = "";
    try {
      MessageDigest md = MessageDigest.getInstance("MD5");
      md.update(password.getBytes());

      byte byteData[] = md.digest();

      // convert the byte to hex format method 1
      StringBuffer sb = new StringBuffer();
      for (int i = 0; i < byteData.length; i++) {
        sb.append(Integer.toString((byteData[i] & 0xff) + 0x100, 16).substring(1));
      }

      md5Hash = sb.toString();

      retorno.setOk(true);
      retorno.setDescripcion("Clave hasheada: " + md5Hash);
      retorno.setObjeto(md5Hash);
    } catch (Exception e) {
      retorno.setOk(false);
      retorno.setDescripcion("Error al hashear la clave \n" + e);
      retorno.setError(true);
    }
    return retorno;
  }
Exemple #5
0
 public static Respuesta dp(int numero, int anterior) {
   if (dp[numero][anterior] != null) return dp[numero][anterior];
   if (numero == 1) {
     Respuesta r = new Respuesta();
     if (anterior == ODD) r.o = 1;
     else if (anterior == EVEN) r.e = 1;
     else if (anterior == IMAGINARY) r.i = 1;
     return dp[numero][anterior] = r.clonar();
   }
   Respuesta mejor = null;
   for (int i : factores[numero]) {
     Respuesta r = dp(numero / i, (anterior + 1) % 3);
     if (anterior == ODD) {
       if (mejor == null || r.e <= mejor.e) mejor = r.clonar();
     } else if (anterior == EVEN) {
       if (mejor == null || r.i <= mejor.i) mejor = r.clonar();
     } else if (anterior == IMAGINARY) {
       if (mejor == null || r.o <= mejor.o) mejor = r.clonar();
     }
   }
   if (primos[numero]) {
     Respuesta r = dp(numero + 1, (anterior + 1) % 3);
     if (anterior == ODD) {
       if (mejor == null || r.e < mejor.e) mejor = r.clonar();
     } else if (anterior == EVEN) {
       if (mejor == null || r.i < mejor.i) mejor = r.clonar();
     } else if (anterior == IMAGINARY) {
       if (mejor == null || r.o < mejor.o) mejor = r.clonar();
     }
   }
   if (anterior == ODD) mejor.o = Math.min(numero, mejor.o);
   else if (anterior == EVEN) mejor.e = Math.min(numero, mejor.e);
   else if (anterior == IMAGINARY) mejor.i = Math.min(numero, mejor.i);
   return dp[numero][anterior] = mejor.clonar();
 }
  public static Respuesta verificarMD5(String aVerificar, String originalMD5) throws Exception {
    Respuesta retorno = new Respuesta();
    Respuesta retornoHash = new Respuesta();
    String aVerificarMD5;

    try {
      retornoHash = hash(aVerificar);

      if (retornoHash.isOk()) {
        aVerificarMD5 = (String) retornoHash.getObjeto();

        if (aVerificarMD5.compareTo(originalMD5) == 0) {
          retorno.setOk(true);
          retorno.setDescripcion("Clave correcta");
          return retorno;
        } else {
          retorno.setOk(false);
          retorno.setDescripcion("Clave Incorrecta");
          return retorno;
        }
      } else {
        retorno.setOk(false);
        retorno.setDescripcion("Error al hashear la clave a verificar");
        retorno.setError(true);
        return retorno;
      }
    } catch (Exception e) {
      retorno.setOk(false);
      retorno.setDescripcion("Error al verificar la clave \n" + e);
      retorno.setError(true);
      return retorno;
    }
  }
 /**
  * Método estático que genera un código verificatorio nuevo
  *
  * <p>Registro de versiones:
  *
  * <ul>
  *   <li>1.0 18/03/2014 Francisco Hernandez (ATC Ltda): Versión inicial
  * </ul>
  *
  * @param rut int Rut de la persona
  * @param idFacebook String Identificador único de facebook
  * @return Objeto Respuesta con el string del cógido generado : ok=true si existoso, ok=false en
  *     caso contrario, y descripcion, error=true si hay error.
  * @since 1.0
  */
 public static Respuesta generaCodigoVerificacion(int rut, String idFacebook) {
   Respuesta retorno = new Respuesta();
   Log logger = new Log("MD5Hashing", "generaCodigoVerificacion()");
   Date fecha = new Date();
   String codigoPrevio = rut + "-" + fecha.toString() + "-" + idFacebook;
   Respuesta respCodigo = codigoVerificacion(codigoPrevio);
   if (respCodigo.isOk()) {
     String codigoListo = (String) respCodigo.getObjeto();
     retorno.setOk(true);
     retorno.setDescripcion(respCodigo.getDescripcion());
     retorno.setObjeto(codigoListo);
     logger.debug(respCodigo.getDescripcion());
   } else {
     retorno.setOk(false);
     retorno.setDescripcion(respCodigo.getDescripcion());
     logger.debug(respCodigo.getDescripcion());
   }
   return retorno;
 }
	public void finalize() throws Throwable {
		super.finalize();
	}