1098 Stimmen

Wie kann ich einen MD5-Hash in Java erzeugen?

Gibt es eine Methode, um einen MD5-Hash einer Zeichenkette in Java zu erzeugen?

2 Stimmen

46 Stimmen

MD5 mag als einseitiges Sicherheitsmerkmal unsicher sein, aber für allgemeine Prüfsummenanwendungen ist es immer noch gut geeignet.

5voto

Prasanna L M Punkte 191

Sie können MD5-Hash erzeugen für einen bestimmten Text mit Hilfe der Methoden in der MessageDigest Klasse in der java.security Paket. Nachstehend finden Sie den vollständigen Codeausschnitt,

import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;
import javax.xml.bind.DatatypeConverter;

public class MD5HashGenerator 
{

   public static void main(String args[]) throws NoSuchAlgorithmException
   {
       String stringToHash = "MyJavaCode"; 
       MessageDigest messageDigest = MessageDigest.getInstance("MD5");
       messageDigest.update(stringToHash.getBytes());
       byte[] digiest = messageDigest.digest();
       String hashedOutput = DatatypeConverter.printHexBinary(digiest);
       System.out.println(hashedOutput);
   }
}

Die Ausgabe der MD5-Funktion ist ein 128-Bit-Hash, der durch 32 hexadezimale Zahlen dargestellt wird.

Wenn Sie eine Datenbank wie MySQL verwenden, können Sie dies auch auf eine einfachere Weise tun. Die Abfrage Select MD5(“text here”) gibt den MD5-Hash des Textes in der Klammer zurück.

4voto

Marcelo Lopes Punkte 49

Versuchen Sie dies:

public static String getHashMD5(String string) {
    try {
        MessageDigest md = MessageDigest.getInstance("MD5");
        BigInteger bi = new BigInteger(1, md.digest(string.getBytes()));
        return bi.toString(16);
    } catch (NoSuchAlgorithmException ex) {
        Logger.getLogger(MD5Utils.class
                .getName()).log(Level.SEVERE, null, ex);

        return "";
    }
}

2 Stimmen

Dies ist wahrscheinlich die schlechteste Lösung, da dabei führende Nullen entfernt werden.

2voto

Priyank Desai Punkte 3485

Dies ist, was ich kam hier für- eine handliche Scala-Funktion, die Zeichenfolge der MD5-Hash zurückgibt:

def md5(text: String) : String = java.security.MessageDigest.getInstance("MD5").digest(text.getBytes()).map(0xFF & _).map { "%02x".format(_) }.foldLeft(""){_ + _}

0voto

shouyu Punkte 11
 import java.math.BigInteger;
 import java.security.MessageDigest;
 import java.security.NoSuchAlgorithmException;

/**
* MD5 encryption
*
* @author Hongten
*
*/
public class MD5 {

 public static void main(String[] args) {
     System.out.println(MD5.getMD5("123456"));
 }

 /**
  * Use md5 encoded code value
  *
  * @param sInput
  * clearly
  * @ return md5 encrypted password
  */
 public static String getMD5(String sInput) {

     String algorithm = "";
     if (sInput == null) {
         return "null";
     }
     try {
         algorithm = System.getProperty("MD5.algorithm", "MD5");
     } catch (SecurityException se) {
     }
     MessageDigest md = null;
     try {
         md = MessageDigest.getInstance(algorithm);
     } catch (NoSuchAlgorithmException e) {
         e.printStackTrace();
     }
     byte buffer[] = sInput.getBytes();

     for (int count = 0; count < sInput.length(); count++) {
         md.update(buffer, 0, count);
     }
     byte bDigest[] = md.digest();
     BigInteger bi = new BigInteger(bDigest);
     return (bi.toString(16));
 }
}

Es gibt einen Artikel auf Codingkit darüber. Schauen Sie sich das an: http://codingkit.com/a/JAVA/2013/1020/2216.html

0voto

Radek Punkte 11
private String hashuj(String dane) throws ServletException{
    try {
        MessageDigest m = MessageDigest.getInstance("MD5");
        byte[] bufor = dane.getBytes();
        m.update(bufor,0,bufor.length);
        BigInteger hash = new BigInteger(1,m.dige`enter code here`st());
        return String.format("%1$032X", hash);

    } catch (NoSuchAlgorithmException nsae) {
        throw new ServletException("Algorytm szyfrowania nie jest obsugiwany!");
    }
}

0 Stimmen

Willkommen bei StackOverflow könnten Sie lesen wollen wie man eine Antwort postet bevor Sie dies tun. Erläutern Sie ein wenig den Kontext, warum Sie den Code veröffentlicht haben und was er bewirkt. Nehmen Sie sich auch die Zeit, Ihre Antwort so zu formatieren, dass sie für die Leser leicht verständlich ist.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X