Generiert MD5-hash in Java -Ausgabe mit 16 Zeichen
Habe ich erstellt MD5-hash.Seine arbeiten fein jetzt.Ich möchte die Ausgabe in 16-Zeichen.Aktuelle Code der Rückkehr von 32 Zeichen.
Dies ist mein code:
try {
String text = "Hello World";
MessageDigest msg = MessageDigest.getInstance("MD5");
msg.update(text.getBytes(), 0, text.length());
String digest1 = new BigInteger(1, msg.digest()).toString(16);
System.out.println("MD5: " + digest1.length());
System.out.println("MD5: " + digest1);
} catch (NoSuchAlgorithmException ex) {
Logger.getLogger(AndroidActivationView.class.getName()).log(Level.SEVERE, null, ex);
}
Wo ich es ändern wollen.
Wie bekomme ich die 16 Zeichen ausgegeben.?
Vielen Dank im Voraus;
- Naja... MD5 ist ein 128-bit-hash, das heißt, 16 bytes. Es kann dargestellt werden mit 32 hexadezimalen Zeichen. Wollen Sie die Rohdaten als ASCII-string?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Schneiden Sie die Zeichenfolge, Länge:
digest1 = digest1.substring(0, 16);
MD5-Ausgänge 16 Byte. Wenn Sie Sie verschlüsseln, in hexadezimal, 32 Zeichen. Wenn Sie codieren es in base-64-es ist 24 Zeichen. Base-85 drücken Sie Sie in 20 Zeichen. Es gibt keine bekannte Codierung das ist ein Zeichen pro byte.
BigInteger
ausschließlich als ein Mittel, um die hex-Codierung ein byte-array ist nicht optimal; eine Funktion gewidmet hex-Codierung könnte überspringen einige der Prüfungen durchBigInteger
Initialisierung, und auch akzeptieren, offset-und length-Parameter wählen Sie einen Teilbereich des byte-array.