Código fuente de descifrado de contraseña
//Entonces el lado de Java debe corresponder. ¿Tu nombre claro es Liu Biao?
//Además, DES ya no es seguro. Si se puede cambiar a 3DES o AES.
Clase pública LearnDes {
Public static void main(String[] args) {
Pruebe {
System.out.println (cifrar("Liu Biao", "12345678 "));
sistema fuera . >} catch(Exception e) {
e . printstacktrace();
}
}
Cifrado de cadena estática pública ( Cadena mensaje, clave de cadena) genera una excepción {
//Cipher Cipher = Cipher .getinstance(" DES/CBC/pkcs 5 padding "); " DES/ECB/no padding ");
deskey spec dekey spec = new dekey spec(key . getbytes(" UTF-8 "));
secretkey factory key factory = secretkey factory . getinstance(" DES ");
clave secreta clave secreta = key factory . generar secreto(deskey spec);
IvParameterSpec iv = new IvParameterSpec(key . getbytes(" UTF-8 "));
//cipher.init(Cipher.ENCRYPT_MODE, secretKey, iv);
cipher.init(contraseña.
ENCRYPT_MODE, secretKey);
Volver a exstring(cipher . do final(message . getbytes(" UTF-8 "));
}
Público estático El descifrado de cadenas (mensaje de cadena, clave de cadena) genera una excepción {
byte[]bytes RC = convertHexString(mensaje);
//Cipher Cipher = Cipher( " DES/CBC . /pkcs 5 padding ");
cipher cipher = cipher . getinstance(" DES/ECB/no padding ");
deskey spec dekey spec = nueva especificación dekey (key . getbytes (" UTF-8 "));
fábrica de claves secretas fábrica de claves = fábrica de claves secretas . getinstance(" DES ");
clave secreta clave secreta = fábrica de claves . spec);
IvParameterSpec iv = new IvParameterSpec(key . getbytes(" UTF-8 "));
//cipher.init(Cipher.DECRYPT_MODE, secretKey , iv);
cipher.init(contraseña. DECRYPT_MODE, secretKey);
byte[]ret byte = cipher. do final(bytes RC);
Devuelve nueva cadena (byte ret);
}
byte estático público[]convertHexString(String ss){
byte digest[] = nueva sección de palabra [ss . ()/2];
for(int I = 0;i<digest.lengthi++) {
cadena byteString = ss substring(2 * I, 2 * I+2);
valor de byte int = entero. analizar int(cadena de bytes, 16);
digest[I]=(byte)valor de byte;
} p>
Resumen de retorno;
}
Cadena estática pública toHexString(byte b[]) {
búfer de cadena cadena hexadecimal = nuevo búfer de cadena( );
for(int I = 0; i & ltb . length; i++) {
cadena texto plano = entero . hexstring(0x ff &b[I]);
if(texto sin formato . length()<2)
texto sin formato = "0" + texto sin formato;
hexString.append(texto sin formato);
}
Devuelve cadena hexadecimal . tostring();
}
}