Y
Yissu
Neues Mitglied
- 0
Hallo Leute,
Ich hab ein merkwürdiges Problem und zwar hab ich eine App geschrieben in der man sich auch einloggen kann die Zugangsdaten werden unter Android 4.x ohne Probleme genommen bei Versionen unter 4.0 geht das allerdings nicht obwohl die Zugangsdaten zu 100% richtig sind.
Ich denke man findet sich jetzt eh nicht direkt drin zurecht deswegen hier nochmal was ich denke wichtig ist rausgeschnitten.
Ich hoffe mal mir kann einer helfen
MfG
Edit: Kann es sein das es Abweichungen zu der md5 funktion in PHP existieren?
Edit2: Problem hat nichts mit der Android Version zu tun, fehler taucht auf wenn das Passwort Sonderzeichen enthalten
Der ursprüngliche Beitrag von 14:41 Uhr wurde um 15:56 Uhr ergänzt:
Kleiner Statusupdate ich hab den Fehler quasi gefunden weiß aber keine Lösung:
Die App sagt das wäre die MD5 Summe: 1af1a690b81b7cabc2f5fde0b0d15ad
und PHP sagt: 1af1a690b81b7cabc2f5fde0b00d15ad
Problem ist das wo eine 00 stehen sollte nur eine einzigste 0 ist.
Ich hab ein merkwürdiges Problem und zwar hab ich eine App geschrieben in der man sich auch einloggen kann die Zugangsdaten werden unter Android 4.x ohne Probleme genommen bei Versionen unter 4.0 geht das allerdings nicht obwohl die Zugangsdaten zu 100% richtig sind.
Code:
TextView username = (TextView) findViewById(R.id.editText1);
TextView passwort = (TextView) findViewById(R.id.editText2);
String passwort2 = passwort.getText().toString();
MessageDigest md5 = null;
try {
md5 = MessageDigest.getInstance("MD5");
} catch (NoSuchAlgorithmException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
md5.reset();
md5.update(passwort2.getBytes());
byte[] result = md5.digest();
StringBuffer hexString = new StringBuffer();
for (int i=0; i<result.length; i++) {
hexString.append(Integer.toHexString(0xFF & result[i]));
}
String passwortMD5 = hexString.toString();
runOnUiThread(new Runnable() {
public void run() {
dialog = ProgressDialog.show(SettingsActivity.this, "",
"Überprüfe Zugangsdaten", true);
}
});
URL apiPath;
try {
apiPath = new URL("******.php?username=" + username.getText() + "&passwort=" + passwortMD5);
BufferedReader in = new BufferedReader(new InputStreamReader(apiPath.openStream(), "ISO-8859-1"));
String output = "";
String input;
while((input = in.readLine()) != null)
output = output + input;
while(dialog == null)
{
}
System.out.println("\"" + output + "\"");
if(output.contains((CharSequence) "true"))
{
dialog.cancel();
SharedPreferences settings = getSharedPreferences("rcccc_zugangsdaten", 0);
SharedPreferences.Editor settingsEditor = settings.edit();
settingsEditor.putString("username", username.getText().toString());
settingsEditor.putString("passwort", passwortMD5);
settingsEditor.commit();
runOnUiThread(new Runnable() { public void run() { Toast.makeText(SettingsActivity.this, "Zugangsdaten wurden gespeichert", Toast.LENGTH_SHORT).show(); } });
} else {
dialog.cancel();
runOnUiThread(new Runnable() {
public void run() {
AlertDialog.Builder builder = new AlertDialog.Builder(SettingsActivity.this);
builder.setMessage("Ungültiger Benutzername oder Passwort.")
.setPositiveButton("Korrigieren", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
dialog.cancel();
}
})
.setNegativeButton("Abbrechen", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
dialog.cancel();
setContentView(R.layout.activity_settings);
initSettingsLayout();
}
});
AlertDialog aDialog = builder.create();
aDialog.show();
}
});
}
} catch (MalformedURLException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
Code:
String passwort2 = passwort.getText().toString();
MessageDigest md5 = null;
try {
md5 = MessageDigest.getInstance("MD5");
} catch (NoSuchAlgorithmException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
md5.reset();
md5.update(passwort2.getBytes());
byte[] result = md5.digest();
StringBuffer hexString = new StringBuffer();
for (int i=0; i<result.length; i++) {
hexString.append(Integer.toHexString(0xFF & result[i]));
}
String passwortMD5 = hexString.toString();
MfG
Edit: Kann es sein das es Abweichungen zu der md5 funktion in PHP existieren?
Edit2: Problem hat nichts mit der Android Version zu tun, fehler taucht auf wenn das Passwort Sonderzeichen enthalten
Der ursprüngliche Beitrag von 14:41 Uhr wurde um 15:56 Uhr ergänzt:
Kleiner Statusupdate ich hab den Fehler quasi gefunden weiß aber keine Lösung:
Die App sagt das wäre die MD5 Summe: 1af1a690b81b7cabc2f5fde0b0d15ad
und PHP sagt: 1af1a690b81b7cabc2f5fde0b00d15ad
Problem ist das wo eine 00 stehen sollte nur eine einzigste 0 ist.
Zuletzt bearbeitet: