Code eins:
/** * MD5-Verschlüsselung implementieren* */public class MD5 { /** * Den verschlüsselten String abrufen* @param input * @return */ public static String stringMD5(String pw) { try { // Einen MD5-Konverter abrufen (if Sie möchten, dass der SHA1-Parameter in „SHA1“ geändert wird. MessageDigest messageDigest =MessageDigest.getInstance("MD5"); Konvertieren Sie die Eingabezeichenfolge in ein Byte-Array byte[] inputByteArray = pw.getBytes(); // inputByteArray ist das durch Konvertieren der Eingabezeichenfolge erhaltene Byte-Array messageDigest.update(inputByteArray); // Konvertieren Sie das Ergebnis, das ebenfalls ein Byte-Array mit 16 Elementen ist, byte[] resultByteArray = messageDigest .digest (); // Zeichenarray in String umwandeln und return byteArrayToHex(resultByteArray); e) { return null; } } public static String byteArrayToHex(byte[] byteArray) { // Initialisieren Sie zuerst ein Zeichenarray, um jedes Hexadezimalzeichen zu speichern char[] hexDigits = {'0','1', '2',' 3','4','5','6','7','8','9', 'A','B','C','D','E','F' }; // neues Zeichenarray, das zur Bildung der Ergebniszeichenfolge verwendet wird (Erklärung: Ein Byte besteht aus acht Bits Binär, das heißt, 2 hexadezimale Zeichen (2 hoch 8 ist gleich 16 hoch 2)) char[] resultCharArray =new char[byteArray.length * 2]; Durchlaufen Sie das Byte-Array, konvertieren Sie es durch Bitoperationen in Zeichen (Bitoperationen sind hocheffizient) und fügen Sie sie in das Zeichenarray ein int index = 0 for (byte b : byteArray) { resultCharArray[index++] = hexDigits[b>>> > 4 & 0xf]; resultCharArray[index++] = hexDigits[b& 0xf] } // Kombiniere das Zeichenarray zu einem String und gebe return new String(resultCharArray); }}
Methode zwei:
package other;import java.security.MessageDigest;import java.security.NoSuchAlgorithmException;/* * MD5 algorithm*/public class MD5 { // Globales Array private final static String[] strDigits = { "0", "1", " 2“, „3“, „4“, „5“, „6“, „7“, „8“, „9“, „a“, „b“, „c“, "d", "e", "f" }; public MD5() { } // Die Rückgabeform ist eine Zahl und ein String private static String byteToArrayString(byte bByte) { int iRet = bByte; println( "iRet="+iRet); if (iRet < 0) { iRet += 256 } int iD1 = iRet / 16; iD2 = iRet % 16; return strDigits[iD1] + strDigits[iD2] } // Die Rückgabeform besteht nur aus Zahlen private static String byteToNum(byte bByte) { int iRet = bByte("iRet1=" + iRet); if (iRet < 0) { iRet += 256; String.valueOf(iRet); } // Konvertieren Sie das Byte-Array in einen hexadezimalen String private static String byteToString(byte[] bByte) { StringBuffer sBuffer = new StringBuffer(); for (int i = 0; i < bByte. length; i++) { sBuffer.append(byteToArrayString(bByte[i])); public static String GetMD5Code(String strObj) { String resultString = null; try { resultString = new String(strObj); MessageDigest md = MessageDigest.getInstance("MD5"); storage Das Byte-Array des Hash-Werts resultString = byteToString(md.digest(strObj.getBytes()) } Catch (NoSuchAlgorithmException ex) { ex.printStackTrace(); } return resultString; } public static void main(String[] args) { MD5 getMD5 = new MD5(); System.out.println(getMD5.GetMD5Code("000000")) ; }}