B
berndschneider
Neues Mitglied
- 0
Hallo Leute,
ich lasse einen String, der mit SHA-1 gehasht wird, in eine Datei schreiben. Damit soll ein Passwort gesetzt werden. Die Methode passwortSchreiben(String EINGABE) beschreibt dies. Mit der MEthode String passwortAuslesen() wird der Inhalt der Passwortdatei in einem String zurückgegebe.
Wenn ich nun das korrekte PW (temp) eingebe(siehe Methodenaufruf) und mit dem aus der Datei vergleiche, sind diese nicht gleich. ich habe mir beide Strings ausgeben lassen und sie sind auch wirklich unterschiedlich, nur weiß ich nicht warum.
void passwortSchreiben(String EINGABE) throws NoSuchAlgorithmException{
MessageDigest digester = MessageDigest.getInstance("SHA-1");
digester.update(EINGABE.getBytes());
byte[] digest = digester.digest();
try {
FileOutputStream fos = context.openFileOutput(FILENAME, Context.MODE_PRIVATE);
fos.write(digest);
//fos.write(EINGABE.getBytes());
fos.close();
Toast.makeText(context, "Passwort erfolgreich erneuert!" , Toast.LENGTH_SHORT).show();
//Toast.makeText(b.getContext(), "Passwort erfolgreich erneuert!" , Toast.LENGTH_SHORT).show();
} catch (FileNotFoundException e) {
e.printStackTrace(); //To change body of catch statement use File | Settings | File Templates.
} catch (IOException e) {
e.printStackTrace(); //To change body of catch statement use File | Settings | File Templates.
}
}
String passwortAuslesen() {
FileInputStream fin = null;
try {
fin = context.openFileInput(FILENAME);
byte[] dataArray = new byte[fin.available()];
while (fin.read(dataArray) != -1) {
collected = new String(dataArray);//fin.read();
}
read=true;
} catch (FileNotFoundException e) {
e.printStackTrace(); //To change body of catch statement use File | Settings | File Templates.
} catch (IOException e) {
e.printStackTrace(); //To change body of catch statement use File | Settings | File Templates.
} finally {
if(fin!=null){
try {
fin.close();
} catch (IOException e) {
e.printStackTrace(); //To change body of catch statement use File | Settings | File Templates.
}
}}
if(read)
return collected;
else
return "LESEFEHLER";
}
AUFRUF DER METHODEN
try {
digester = MessageDigest.getInstance("SHA-1");
}
catch (NoSuchAlgorithmException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
digester.update(temp.getBytes());
digest = digester.digest();
if(passwortAuslesen().equals(digest.toString()))
{ treffer=true; }
}
ich lasse einen String, der mit SHA-1 gehasht wird, in eine Datei schreiben. Damit soll ein Passwort gesetzt werden. Die Methode passwortSchreiben(String EINGABE) beschreibt dies. Mit der MEthode String passwortAuslesen() wird der Inhalt der Passwortdatei in einem String zurückgegebe.
Wenn ich nun das korrekte PW (temp) eingebe(siehe Methodenaufruf) und mit dem aus der Datei vergleiche, sind diese nicht gleich. ich habe mir beide Strings ausgeben lassen und sie sind auch wirklich unterschiedlich, nur weiß ich nicht warum.
void passwortSchreiben(String EINGABE) throws NoSuchAlgorithmException{
MessageDigest digester = MessageDigest.getInstance("SHA-1");
digester.update(EINGABE.getBytes());
byte[] digest = digester.digest();
try {
FileOutputStream fos = context.openFileOutput(FILENAME, Context.MODE_PRIVATE);
fos.write(digest);
//fos.write(EINGABE.getBytes());
fos.close();
Toast.makeText(context, "Passwort erfolgreich erneuert!" , Toast.LENGTH_SHORT).show();
//Toast.makeText(b.getContext(), "Passwort erfolgreich erneuert!" , Toast.LENGTH_SHORT).show();
} catch (FileNotFoundException e) {
e.printStackTrace(); //To change body of catch statement use File | Settings | File Templates.
} catch (IOException e) {
e.printStackTrace(); //To change body of catch statement use File | Settings | File Templates.
}
}
String passwortAuslesen() {
FileInputStream fin = null;
try {
fin = context.openFileInput(FILENAME);
byte[] dataArray = new byte[fin.available()];
while (fin.read(dataArray) != -1) {
collected = new String(dataArray);//fin.read();
}
read=true;
} catch (FileNotFoundException e) {
e.printStackTrace(); //To change body of catch statement use File | Settings | File Templates.
} catch (IOException e) {
e.printStackTrace(); //To change body of catch statement use File | Settings | File Templates.
} finally {
if(fin!=null){
try {
fin.close();
} catch (IOException e) {
e.printStackTrace(); //To change body of catch statement use File | Settings | File Templates.
}
}}
if(read)
return collected;
else
return "LESEFEHLER";
}
AUFRUF DER METHODEN
try {
digester = MessageDigest.getInstance("SHA-1");
}
catch (NoSuchAlgorithmException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
digester.update(temp.getBytes());
digest = digester.digest();
if(passwortAuslesen().equals(digest.toString()))
{ treffer=true; }
}