Red de conocimiento informático - Material del sitio web - Cómo modificar el código fuente de proxool y configurar el cifrado de contraseña de conexión a la base de datos

Cómo modificar el código fuente de proxool y configurar el cifrado de contraseña de conexión a la base de datos

proxool es un buen grupo de conexiones, pero la contraseña de la base de datos en el archivo de configuración por defecto es texto sin formato, lo que parece un poco simple. Quiero cambiarlo a texto cifrado. La idea es configurar la clase en la fuente de datos como una clase escrita por nosotros mismos, que hereda de org.logiccobwebs.proxool.ProxoolDataSource, por ejemplo: ;

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>

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) {

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

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();

}

}

}

}