Cómo modificar el código fuente de proxool y configurar el cifrado de contraseña de conexión a la base de datos
Obtenga el texto cifrado de la contraseña en esta clase, descifrelo y restablezca la contraseña y la URL de proxool.
Código:
/**
* Anular org.logiccobwebs.proxool.ProxoolDataSource {
/**
* Restablecer la base de datos la información del enlace es texto sin formato
*/
public void setPassword(String mi) {
super.setPassword(mi);
String passWord = passWord(mi);
public class DataSource extendss org.logiccobwebs.proxool.ProxoolDataSource {
/**
* Restablecer información de enlace de base de datos para texto plano
*/
public void setPassword(String mi) {
super.setPassword(mi); String passWord = DesDecode(mi); p> p>
super.setPassword(contraseña);
String url = reSetUrl(super.getDriverUrl(), super.getPassword ());
super.setDriverUrl( url) ;
}
/* Reemplazar la contraseña de la URL con texto sin formato*
public String reSetUrl(String url, String pwd) { p>
int comenzar = url.indexOf('/');
int end = url.indexOf('@');
String url2 = url.substring( 0, comenzar + 1 ) + pwd + url.substring(end);
return url2;
}
public String getPassword() {
return super.getPassword();
}
/* Obtener el texto sin formato de acuerdo con el texto cifrado de la contraseña del archivo de configuración de la base de datos*/
public String DesDecode(String mi) {
DESUtil des = new DESUtil();
des.getKey("HUACAIKEYG");
String strDes = des .getDesString(mi)io.BufferedReader
importar java.io.InputStreamReader
importar java.io.UnsupportedEncodingException
importar java.security.*
importar javax.crypto.*;
importar javax.crypto.spec.SecretKeySpec )
importar sun.BASE64Enter
importar java.BASE64Enter
importar java.BASE64Enter
importar java.BASE64Enter
>importar java.BASE64Entermisc.BASE64Encoder;
public class ThreeDes {
private static final String Algorithm = "DESede"; //definir algoritmos de cifrado, disponibles en DES, DESede, Blowfish
Definir algoritmo de cifrado.DESede,Blowfish
//keybyte es la clave de cifrado, la longitud es 24 bytes
//src es el búfer de datos que se cifrará ( fuente)
byte estático público[] encryptMode(byte[] keybyte, byte[] src) {
prueba {
//generar clave p >
SecretKey dekey = new SecretKeySpec(keybyte, Algoritmo);
// Cifrado
Cifrado c1 = Cipher.getInstance(algoritmo); /p>
c1.init(Cipher.ENCRYPT_MODE, desey);
return c1.doFinal(src);
} catch (java.security. NoSuchAlgorithmException e1) {
e1.printStackTrace(); , 0x77, 0x29, 0x74, (byte)0x98, 0x30, 0x40, 0x36, (byte)0xE2} ; intente {
String szSrc = input;
System.out.println("Cadena cifrada antes del cifrado:" + szSrc =
byte[] codificado =); encryptMode(keyBytes, szSrc.getBytes());
BASE64Encoder base64en = new BASE64Encoder();
System.out.println("Cadena cifrada:" + Base64.encode (encytes ());
System.out.println("Cadena cifrada:" + szSrc.getBytes())+ Base64.encode(codificado));
byte[] srcBytes = decryptMode(keyBytes, Base64.decode(Base64.encode( codificado))));
// System.out.println("Cadena descifrada:")+ (new String(srcBytes))) ;
} catch (Excepción e) {
// TODO Bloque de captura generado automáticamente dCqB6+nmwnXOECa05SO3tA==
e.printStackTrace();
p>}
}
<p> }
}
}catch (Excepción e){
e. printStackTrace();
}
}
}
}