Passwort verschlüsseln schlägt fehl

U

unavailable

Mitglied
Guten Tag,

ich arbeite zur Zeit an einem Adressbuch.
Ich möchte, dass die Passwörter, bevor sie in die Datenbank eingetragen werden, verschlüsselt werden.
Hierfür benutze ich diese Klasse:
Java:
import java.security.Key;
import java.util.Arrays;

import javax.crypto.Cipher;
import javax.crypto.spec.SecretKeySpec;

import sun.misc.BASE64Decoder;
import sun.misc.BASE64Encoder;

public class CEncryption
{
	static Key key;
	static Cipher cipher;
	private final static String algorithm = "AES";
	private final static byte[] keyValue = { 'T', 'h', 'e', 'B', 'e', 's', 't', 'E', 'n', 'c', 'r', 'y', 'p', 't', 'i', 'o', 'n' };

	public static String encrypt(String toEncrypt) throws Exception
	{
		key = generateKey();
		cipher = Cipher.getInstance(algorithm);
		cipher.init(Cipher.ENCRYPT_MODE, key);
		byte[] b = cipher.doFinal(toEncrypt.getBytes());
		return new BASE64Encoder().encode(b);
	}
	
	public static String decrypt(String encryptedString) throws Exception
	{
		key = generateKey();
		cipher = Cipher.getInstance(algorithm);
		cipher.init(Cipher.DECRYPT_MODE, key);
		byte[] temp = new BASE64Decoder().decodeBuffer(encryptedString);
		byte[] b = cipher.doFinal(temp);
		return new String(b);
	}

	private static Key generateKey() throws Exception
	{
		return new SecretKeySpec(Arrays.copyOf(keyValue, 16), algorithm);
	}

}

Hier rufe ich die Funktion auf:
Java:
	public void registerUser(String username, String password) throws Exception
	{	
		CEncryption.encrypt(password);
		try
		{
			statement = connection.createStatement();
			String sql = "INSERT INTO users(username, password) VALUES("+"'"+username+"'"+"," +"'"+password+"'"+")";
			statement.executeQuery(sql);
		}
		catch (SQLException e)
		{
			e.getMessage();
		}
	}

Allerdings will das nicht richtig funktionieren, denn nach dem Registrieren steht das Passwort in Klartext in der Datenbank. Ich kriege keinerlei Exceptions von Eclipse, was mich zu dem Punkt bringt hier zu posten. Irgendwelche Anregungen/Tips/Verbesserungsvorschläge?
 
J

Joose

Top Contributor
Java:
	public void registerUser(String username, String password) throws Exception
	{	
		CEncryption.encrypt(password);
		try
		{
			statement = connection.createStatement();
			String sql = "INSERT INTO users(username, password) VALUES("+"'"+username+"'"+"," +"'"+password+"'"+")";
			statement.executeQuery(sql);
		}
		catch (SQLException e)
		{
			e.getMessage();
		}
	}

Warum erwartest du auch etwas anderes?
Du rufst zwar die Methode encrypt auf, aber mit dem Rückgabewert (verschlüsseltes Password) machst du nichts! Speichere den Rückgabewert in eine lokale Variable und verwende diese statt "password" im Query.

Anmerkung: Dein Code ist anfällig für SQL Injection, verwendet stattdessen PreparedStatements!
 
A

anti-held

Bekanntes Mitglied
Wenn du das Passwort schon verschlüsselt, solltest du halt auch das verschlüsselte Passwort in die Datenbank schreiben und nicht den Klartext:


Java:
String encryptedPassword = CEncryption.encrypt(password);
 
U

unavailable

Mitglied
Warum erwartest du auch etwas anderes?
Du rufst zwar die Methode encrypt auf, aber mit dem Rückgabewert (verschlüsseltes Password) machst du nichts! Speichere den Rückgabewert in eine lokale Variable und verwende diese statt "password" im Query.

Anmerkung: Dein Code ist anfällig für SQL Injection, verwendet stattdessen PreparedStatements!
Höhö, sowas fällt mir natürlich nicht auf.
Danke für den Tip mit sqli, werd mich dran machen :).

Dankeschööööööön.

Wenn du das Passwort schon verschlüsselt, solltest du halt auch das verschlüsselte Passwort in die Datenbank schreiben und nicht den Klartext:


Java:
String encryptedPassword = CEncryption.encrypt(password);
Genau so wird's gemacht, danke euch.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
D Passwort verschlüsseln mit MD5 Java Basics - Anfänger-Themen 30
C Passwort abprüfen Java Basics - Anfänger-Themen 5
M Code nur für Cracks? Crack the Passwort Übung Java Basics - Anfänger-Themen 7
cpt.Tomato Scanner problem mit Passwort Login Java Basics - Anfänger-Themen 3
B Email versand - aber akzeptiert auch falscher Username und Passwort??? Java Basics - Anfänger-Themen 1
N Passwort Anfrage vor Programm start Java Basics - Anfänger-Themen 1
K Methoden Passwort Bestätigungsfeld mit Password vergleichen Java Basics - Anfänger-Themen 7
A Passwort System Java Basics - Anfänger-Themen 4
G Passwort und Passwort wiederholen in if-Abfrage vergleichen Java Basics - Anfänger-Themen 15
E Wie Passwort-Eingabe (ohne Echo!) über Konsole ? Java Basics - Anfänger-Themen 4
J Passwort überprüfen Java Basics - Anfänger-Themen 3
B Passwort prüfen bis eindeutig - while Schleife? Java Basics - Anfänger-Themen 11
C Encrypted (passwort) Rar Datei entpacken Java Basics - Anfänger-Themen 42
Detox Passwort verschleiern Java Basics - Anfänger-Themen 4
A Erste Schritte Passwort an "Internetseite" übergeben. Java Basics - Anfänger-Themen 2
B Passwort zurücksetzen Java Basics - Anfänger-Themen 1
T Passwort Generator Java Basics - Anfänger-Themen 2
B If Abfrage mit Passwort und Username Java Basics - Anfänger-Themen 2
fLooojava Passwort generieren - kleines Programm Java Basics - Anfänger-Themen 15
Z User/passwort eingabe...Help! Java Basics - Anfänger-Themen 4
M Passwort-Generator Java Basics - Anfänger-Themen 3
S Passwort Manager Java Basics - Anfänger-Themen 2
J Passwort Java Basics - Anfänger-Themen 4
A Passwort Schutz Java Basics - Anfänger-Themen 8
U Passwort auf JButton setzen. Java Basics - Anfänger-Themen 2
P Passwort Abfrage Java Basics - Anfänger-Themen 3
F Login Passwort-Vergleich Java Basics - Anfänger-Themen 12
c_sidi90 Passwort Generator Code Erweiterung Java Basics - Anfänger-Themen 12
K Methode Passwort generieren Java Basics - Anfänger-Themen 10
F OOP Textdatei zippen und mit Passwort sichern Java Basics - Anfänger-Themen 5
Benji0815 Java Passwort in Formular eingeben Java Basics - Anfänger-Themen 5
G Passwort verschluesselt speichern Java Basics - Anfänger-Themen 7
M Regular Expression - Passwort - aufeinanderfolgende Zeichen Java Basics - Anfänger-Themen 3
H Passwort einlesen funktioniert nicht wie gewünscht Java Basics - Anfänger-Themen 5
S Erster Versuch: Passwort erstellen Java Basics - Anfänger-Themen 3
S String Vergleich mit Passwort geht nur bei Zahlen ? Java Basics - Anfänger-Themen 7
S Vergleichen von verschlüsselten Passwort Java Basics - Anfänger-Themen 3
G Passwort vor unbefugtem Zugriff schützen Java Basics - Anfänger-Themen 7
P Passwort überprüfen mit regular Expression Java Basics - Anfänger-Themen 4
O Unsichtbares Passwort Java Basics - Anfänger-Themen 2
R Passwort Maskierung in der Konsole Java Basics - Anfänger-Themen 9
I Frame mit Passwort-Eingabe (Datenbank) Java Basics - Anfänger-Themen 6
V Passwort-String byteweise in eine Datei schreiben Java Basics - Anfänger-Themen 6
T Passwort nicht in URL übergeben Java Basics - Anfänger-Themen 5
B Benutzername und Passwort an Internetseite übergeben Java Basics - Anfänger-Themen 3
B Passwort generator Java Basics - Anfänger-Themen 7
L Verschlüsseln mit bouncing castle Java Basics - Anfänger-Themen 1
I SHA512 verschlüsseln und dann wieder auslesen? Java Basics - Anfänger-Themen 35
T String simpel aber sicher verschlüsseln Java Basics - Anfänger-Themen 5
L Text verschlüsseln Java Basics - Anfänger-Themen 13
S Strings verschlüsseln und entschlüsseln?! Java Basics - Anfänger-Themen 6
H Erste Schritte Verschlüsseln Java Basics - Anfänger-Themen 13
O Java Dateien verschlüsseln? Java Basics - Anfänger-Themen 22
B String verschlüsseln - Applet - ohne BASE64 Java Basics - Anfänger-Themen 7
R Server-Daten sichern/verschlüsseln Java Basics - Anfänger-Themen 10
P Sensible Daten Speichern/Verschlüsseln von serialisiertem Objekt Java Basics - Anfänger-Themen 5
-horn- Java-Bytecode und Outputs verschlüsseln? Java Basics - Anfänger-Themen 3
E Verschlüsseln und FileWrite Java Basics - Anfänger-Themen 6
S String mit Hilfe von Array verschlüsseln Java Basics - Anfänger-Themen 19
F Algorithm zum Verschlüsseln und Entschlüsseln Java Basics - Anfänger-Themen 6
S Nummern verschlüsseln, prüfen ob vorhanden in Datenbank Java Basics - Anfänger-Themen 2
B Strings verschlüsseln Java Basics - Anfänger-Themen 6
H verschlüsseln von daten Java Basics - Anfänger-Themen 2
D daten verschlüsseln Java Basics - Anfänger-Themen 4
A MD5 verschlüsseln Java Basics - Anfänger-Themen 3
A DSA und Base64 Verschlüsseln und Entschlüsseln Java Basics - Anfänger-Themen 4
S "Verschlüsseln" anderer Dateien! Java Basics - Anfänger-Themen 19
L Datei verschlüsseln Java Basics - Anfänger-Themen 9
N Vergleich von Strings schlägt fehl.. Java Basics - Anfänger-Themen 5
E Netzlaufwerk Zugriff schlägt fehl Java Basics - Anfänger-Themen 11
T Input/Output String-Vergleich schlägt fehl Java Basics - Anfänger-Themen 7
M Erste Schritte if-Bedingung schlägt fehl Java Basics - Anfänger-Themen 4
chuxXo renamtTo schlägt fehl Java Basics - Anfänger-Themen 3
J Kompilieren von HelloWorld Beispiel schlägt fehl Java Basics - Anfänger-Themen 7
W Test, ob Datei existiert, schlägt fehl Java Basics - Anfänger-Themen 4
R variable überschreiben schlägt fehl Java Basics - Anfänger-Themen 13
B Überprüfen von Strings schlägt fehl Java Basics - Anfänger-Themen 5
R Objekt deserialisierung schlägt fehl... Java Basics - Anfänger-Themen 2
Semox Datentypen Einlesen von char in Array schlägt unerwartet fehl Java Basics - Anfänger-Themen 4
G Object zu String schlägt fehl Java Basics - Anfänger-Themen 9
G Erstellen einer JAR-Datei mit Ant-Scrit schlägt fehl Java Basics - Anfänger-Themen 2
A Vergleich schlägt fehl Java Basics - Anfänger-Themen 15
G Rekursive Berechnung von n über k schlägt fehl Java Basics - Anfänger-Themen 5

Ähnliche Java Themen

Anzeige


Oben