Hallo,
vorab erstmal ein großes SORRY... Ich habe schon in zig Beiträgen, Google ergebnissen und codeschnipseln gewühlt, habe aber leider nix zu meinem Problem gefunden. Folgendes Problem: Ich habe nach einer möglichkeit gesucht, Logindaden (explizit das Passwort) verschlüsselt in eine Datenbank zu schreiben, dann sollte wenn sich der user anmelden will, das eingegebene Passwort verschlüsselt werden und mit dem gespeicherten verschlüsselten passwort verglichen werden. Ich habe folgende Codeschnipsel aufprobiert:
und:
Ich hab soweit auf gerafft wie das alles funktioniert, glaube ich zumindest.
Wenn ich jetzt ein Passwort verschlüsseln lasse und in die DB schreibe(was übrigens gut geht), und mich danach anmelden will und das selbe passwort eintippe, kommt bei mir ein anderer wert raus. Kurz die 2 Passwörter müssen augenscheinlich unterschiedlich verschlüsselt worden sein.
Weiß irgendjemand irgendetwas?
Ich hoffe, ich hab alle infos drin, die Ihr braucht.
Grüße Steffen
vorab erstmal ein großes SORRY... Ich habe schon in zig Beiträgen, Google ergebnissen und codeschnipseln gewühlt, habe aber leider nix zu meinem Problem gefunden. Folgendes Problem: Ich habe nach einer möglichkeit gesucht, Logindaden (explizit das Passwort) verschlüsselt in eine Datenbank zu schreiben, dann sollte wenn sich der user anmelden will, das eingegebene Passwort verschlüsselt werden und mit dem gespeicherten verschlüsselten passwort verglichen werden. Ich habe folgende Codeschnipsel aufprobiert:
Code:
public static String getCheckSum(String str, String algo){
try {
MessageDigest md = MessageDigest.getInstance(algo);
md.update(str.getBytes());
return new String (md.digest());
} catch (java.security.NoSuchAlgorithmException nsae) {
System.err.println(nsae.toString()+": Konnte String nicht verschlüsseln!");
}
return null;
}
und:
Code:
public static String createDigest(String userName, String password) throws Exception
{
MessageDigest digest = MessageDigest.getInstance("SHA-1");
digest.reset();
byte[] saltedBytes = (userName + password).getBytes("UTF-8");
byte[] hashedBytes = digest.digest(saltedBytes);
String encoded = new sun.misc.BASE64Encoder().encode(hashedBytes);
return encoded;
}
Ich hab soweit auf gerafft wie das alles funktioniert, glaube ich zumindest.
Wenn ich jetzt ein Passwort verschlüsseln lasse und in die DB schreibe(was übrigens gut geht), und mich danach anmelden will und das selbe passwort eintippe, kommt bei mir ein anderer wert raus. Kurz die 2 Passwörter müssen augenscheinlich unterschiedlich verschlüsselt worden sein.
Weiß irgendjemand irgendetwas?
Ich hoffe, ich hab alle infos drin, die Ihr braucht.
Grüße Steffen