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:
Hier rufe ich die Funktion auf:
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?
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?