Erstellung einer verschlüsselten Passwort Datei

StefanG

Aktives Mitglied
Hallo,

ich verwende in einer von mir entwickelten Anwendung SQL Querys um mir Infos aus einer Oracle Datenbank zu holen.

Jetzt würde ich ganz gerne eine db_properties.ini Datei auf der Festplatte ablegen, in der

sDatenbankVerbindung = "jdbc😱racle:....."
sDatenbankUser = "MeinBenutzer"
sDatenbankPasswort = "Mein Passwort"

abgelegt sind.

Wichtig ist mir nur, dass das Passwort und der Benutzername verschlüsselt sind und ich die erst in der Anwendung entschlüssel. Welche Wege gibt es zur Umsetzung?

Hatte da an eine Methode verschlüsseln/entschlüsseln gedacht, die mithilfe eines Schlüssels der im Quellcode hinterlegt ist, mir die Werte dementsprechend ver/entschlüsselt.

Hat jemand einen Tipp?
 
Leider scheint das ganze nicht richtig zu funktionieren....


Java:
public class CryptTool {

	private final static byte[] XOR = new byte[] { (byte) 243, 38, (byte) 129,
			(byte) 196, 57, (byte) 134, (byte) 219, (byte) 146 };

	public static String encrypt(String plain) {
		String pw = "";
		for (int i = 0; i < plain.length(); i++) {
			byte b = (byte) (plain.charAt(i) ^ (XOR[i % 8] & 0xFF));
			pw += b < 16 ? "0" + Integer.toHexString(b & 0xFF) : Integer
					.toHexString(b & 0xFF);
		}
		return pw.toUpperCase();
	}

	public static String decrypt(String pw) {
		if (pw.length() % 2 != 0) {
			throw new IllegalArgumentException("Not a valid password!");
		}
		String plain = "";
		for (int i = 0; i < pw.length() / 2; i++) {
			int b = Integer.valueOf(pw.substring(i * 2, i * 2 + 2), 16);
			plain += (char) (b ^ (XOR[i % 8] & 0xFF));
		}
		return plain;
	}

	public static void main(String[] args) {
		System.out.println(decrypt("A743D2B069F1EA"));
		System.out.println(encrypt("TeStPw1"));
	}
}

entschlüsselt: "TeStPw1"
verschlüsselt: "A743D2B069F1EA"

... soweit so gut.

Wenn ich jedoch mit der Methode encrypt("TeStPw1") verschlüssel, erhalte ich als Rückgabewert:

"0A7430D20B0690F10EA" !

"A743D2B069F1EA" wäre richtig und könnte mit decrypt wieder entschlüsselt werden. Einer eine Idee was da falsch läuft?
 

Neue Themen


Zurück
Oben