Acerca de los resultados del cifrado MD5
Deberías haber encontrado en línea el código de implementación de cifrado JAVA MD5 incorrecto, ¿verdad? Lo que se cifra con el método incorrecto es el texto cifrado que publicó
//Método incorrecto; 0xFF & byteArray[i]).length() == 1 faltarán 0 dígitos, lo cual es incorrecto, p>
// md5StrBuff.append(Integer.toHexString(0xff & byteArray[i]));
//La forma correcta
if (Integer. toHexString(0xFF) & byteArray[i]).length() == 1) {
md5StrBuff.append("0").append(Integer.toHexString(0xFF & byteArray[i]));
} else {
md5StrBuff.append(Integer.toHexString(0xFF & byteArray[i]));
}
// fin p>
Completo:
importar java.security.MessageDigest;
clase pública MD5Util {
public static void main(String[ ] args) {
System.out.println(MD5("123"));
}
/**
* El resultado de cifrando la cadena en MD5
* @param fuente cadena fuente
* @return la cadena cifrada
*/
cadena estática pública MD5(Fuente de cadena) {
prueba {
// Cifrado MD5 de la contraseña
byte byteEncrypt[] = null ;
byteEncrypt = source.getBytes("UTF8");
MessageDigest mdInstance = MessageDigest.getInstance("MD5");
mdInstance.update(byteEncrypt);
byte byteArray[] = mdInstance.digest();
// Codificación de conversión MD5
StringBuffer md5StrBuff = new StringBuffer();
for (int i = 0; i < byteArray.length; i++) {
//Manera incorrecta 0xFF & byteArray[i]).length() == 1 Faltan 0 dígitos es incorrecto
// md5StrBuff.append(Integer.toHexString(0xff & byteArray[i]));
//La forma correcta
if (Integer.toHexString(0xFF & byteArray[i] ).length() == 1) {
md5StrBuff.append("0").append(Integer.toHexString(0xFF & byteArray
[i]));
} más {
md5StrBuff.append(Integer.toHexString(0xFF & byteArray[i]));
} p>
//end
}
return md5StrBuff.toString();
} catch (Excepción e) {
}
devuelve nulo;
}
}