2016-11-09 3 views
1
public static String convertToMD5(String input) throws Exception { 
    String md5 = null; 
    if (null == input) 
     return null; 
    try { 
     // Create MessageDigest object for MD5 
     MessageDigest digest = MessageDigest.getInstance("MD5"); 
     // Update input string in message digest 
     digest.update(input.getBytes(), 0, input.length()); 
     // Converts message digest value in base 16 (hex) 
     md5 = new BigInteger(1, digest.digest()).toString(16); 
    } catch (NoSuchAlgorithmException e) { 

     throw e; 
    } 
    return md5; 
} 

diesen Code mit der Zeichenfolge zu verschlüsseln i md5 Verschlüsselung zur normalen Zeichenfolge entschlüsseln will? können Sie helfendekodieren md5 ecnrytion in java

Antwort

0

Um @ dits Antwort hinzuzufügen, haben Sie nur eine Option; Das ist zum Beispiel MD5-Strings zu vergleichen. MD5("cat") == MD5("cat"), gibt es keine Möglichkeit, "cat" von MD5("cat") abzuleiten, weil, wie erklärt, es eine Hash-Funktion ist.

Hier ist etwas, das Sie zum Vergleich verwenden können:

public static boolean matching(String orig, String compare){ 
    String md5 = null; 
    try{ 
     MessageDigest md = MessageDigest.getInstance("MD5"); 
     md.update(compare.getBytes()); 
     byte[] digest = md.digest(); 
     md5 = new BigInteger(1, digest()).toString(16); 

     return md5.equals(orig); 

    } catch (NoSuchAlgorithmException e) { 
     return false; 
    } 

    return false; 
} 

Dann können Sie matching("d077f244def8a70e5ea758bd8352fcd8", "cat"); rufen die true zurückkehren wird, und wenn matching(MD5("x"), "y") wird es false zurück.

+0

thaks, können Sie für den letzten Kommentar helfen –

1

md5 ist kein Verschlüsselungsalgorithmus. Es ist ein hash function. Die Hash-Zeichenfolge kann nicht decodiert werden. Die ursprüngliche Zeichenfolge wird für immer "zerstört".