MD5 HexString kürzer als 32 Zeichen
lima-city → Forum → Programmiersprachen → Java
auto
berechnen
blocken
byte
code
ende
entstehen
fehlen
folgende funktion
format
funktion
konvertieren
nachteil
null
nutz
paar
string
url
wahrscheinlichkeit
zeichen
-
Hallo, ich nutze folgende Funktion um einen md5 hash in Android zu berechnen und ihn in einen HexString zu konvertieren. Dabei werden die Hex Strings bei bisher getesten Passwörtern 30-31 Zeichen lang. Sollten die Strings nicht immer 32 Zeichen haben?
public static String encryptPassword(String password){ byte[] thedigest= null; try { byte[] bytesOfMessage = password.getBytes("UTF-8"); MessageDigest md = MessageDigest.getInstance("MD5"); thedigest = md.digest(bytesOfMessage); } catch (UnsupportedEncodingException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (NoSuchAlgorithmException e) { // TODO Auto-generated catch block e.printStackTrace(); } StringBuffer hexString = new StringBuffer(); for (int i=0; i<thedigest.length; i++) hexString.append(Integer.toHexString(0xFF & thedigest[i])); return hexString.toString(); }
-
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage
-
hackyourlife schrieb:
Du benutzt die Funktion
, doch die gibt keine führenden Nullen aus. Wenn bei ein paar Bytes eine führende Null entstehen, fehlen am Ende Zeichen in deinem Hex-String.Integer.toHexString()
Okay, vermutet habe ich sowas in der Richtung. Nachteil meiner Methode wäre also, dass 0BA1 und BA01 zum gleichen Hexstring führen würden und somit die Wahrscheinlichkeit steigt, dass mit einem anderen Passwort der gleiche Hexstring entsteht.
hackyourlife schrieb:
Du könntest so etwas machen:hexString.append(String.format("%02X", thedigest[i] & 0xFF));
Vielen Dank, werde ich gleich testen, aber klingt logisch. -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage