Verschlüsselung mit Pwd. - User soll Algorithmus wählen

Status
Nicht offen für weitere Antworten.

Illuvatar

Top Contributor
Ich möchte dem User in diesem Programm die Möglichkeit geben, die Ausgabedatei zu verschlüsseln und mit enem Passwort zu versehen, außerdem wollte ich ihm die Möglichkeit geben, den Algorithmus selbst zu wählen.
Ich kenne mich mit java.security nicht sonderlich aus, allerdings hatte ich gehofft, das mit Hilfe dieser Beispiele hinzubekommen: http://javaalmanac.com/egs/javax.crypto/pkg.html
Dadurch bin ich zu folgendem Code gekommen:
Code:
class SecuritySettings extends JPanel
{
	JCheckBox encrypt;
	JComboBox jcb;
	JPasswordField pass;
	public SecuritySettings()
	{
		//Gui anordnen, das ist hier nicht so wichtig...
	}
// This method returns the available implementations for a service type
// ComboBox wird mit getCryptoImpls ("Cipher") befüllt
    public static String[] getCryptoImpls(String serviceType) {
        Set<String> result = new HashSet<String>();
    
        // All all providers
        Provider[] providers = Security.getProviders();
        for (int i=0; i<providers.length; i++) {
            // Get services provided by each provider
            Set<Object> keys = providers[i].keySet();
            for (Iterator<Object> it=keys.iterator(); it.hasNext(); ) {
                String key = it.next().toString();
                key = key.split(" ")[0];
    
                if (key.startsWith(serviceType+".")) {
                    result.add(key.substring(serviceType.length()+1));
                } else if (key.startsWith("Alg.Alias."+serviceType+".")) {
                    // This is an alias
                    result.add(key.substring(serviceType.length()+11));
                }
            }
        }
        return result.toArray(new String[result.size()]);
    }
    public boolean getEncrypt()
    {
    	return encrypt.isSelected();
    }
    public String getAlgorithm()
    {
    	return jcb.getSelectedItem().toString();
    }
    public char[] getPassPhrase()
    {
    	return pass.getPassword();
    }
}

...

//andere Klasse, es soll gespecihert werden
	FileOutputStream fos = new FileOutputStream (saveIn);
	JarOutputStream jos = new JarOutputStream(fos);
	OutputStream os = jos;
	if (ss.getEncrypt()){
		try{
			KeySpec keySpec = new PBEKeySpec(ss.getPassPhrase(), salt, iterationCount);
			SecretKey sk = //???
		}catch (Exception ex){
			ex.printStackTrace();
			JOptionPane.showMessageDialog(XJarCreator.this, "Encryption failed.
Output file won't be encrypted.", ex.toString(), JOptionPane.ERROR_MESSAGE);
			os = jos;
		}
	 }

Wenn ich das recht verstanden habe, müsste ich da jetzt den SecretKey aus dem KeySpec machen. Da kann ich ja auch den Algorithmus angeben, den der User gewählt hat, nur passt der (PBE)KeySpec da ja nicht immer dazu... Ist das überhaupt möglich, das dynamisch zu machen, jede beliebige Verschlüsselung - und mit Passwort? Oder muss ich mich da zur Compilezeit festlegen?
 

Bleiglanz

Gesperrter Benutzer
hängt halt vom Provider ab für welche Kombinationen von Digest
und Cipher er ein PBE anbietet (ich glaub im jdk ist die Auswahl eher mau)

bouncy castle:

PBEWithMD5And128BitAESCBCOpenSSL
PBEWithMD5And192BitAESCBCOpenSSL
PBEWithMD5And256BitAESCBCOpenSSL
PBEWithMD5AndDES
PBEWithMD5AndRC2
PBEWithRIPEMD160
PBEWithSHA
PBEWithSHA1AndDES
PBEWithSHA1AndRC2
PBEWithSHA256And128BitAESBC
PBEWithSHA256And192BitAESBC
PBEWithSHA256And256BitAESBC
PBEWithSHAAnd128BitAESBC
PBEWithSHAAnd128BitRC2
PBEWithSHAAnd128BitRC4
PBEWithSHAAnd192BitAESBC
PBEWithSHAAnd256BitAESBC
PBEWithSHAAnd40BitRC2
PBEWithSHAAnd40BitRC4
PBEWithSHAAndDES2Key
PBEWithSHAAndDES3Key
PBEWithSHAAndIDEA
PBEWithSHAAndTwofish
PBEWithTiger
 

Illuvatar

Top Contributor
D.h. ich kann nicht zu jedem Algorithmus oder Cipher (oder wie das alles heißt ;) ) zur Runtime ein passendes KeySpec erstellen, sondern muss mich auf sagen wir PBEWithMD5AndDES festlegen, und kann dann eine PBEKeySpec verwenden?
 

Illuvatar

Top Contributor
Also, ich hake den Thread jetzt mal ab, und verwende einen festgelegten Algorithmus. Falls jemand noch etwas weiß, darf er das aber gerne auch noch schreiben.
 

Bleiglanz

Gesperrter Benutzer
Illuvatar hat gesagt.:
D.h. ich kann nicht zu jedem Algorithmus oder Cipher (oder wie das alles heißt ;) ) zur Runtime ein passendes KeySpec erstellen, sondern muss mich auf sagen wir PBEWithMD5AndDES festlegen, und kann dann eine PBEKeySpec verwenden?

Nein, es ist aber praktischer wenn du es so machst

(PBE ist nur für ganz wenige Kombinationen wirklich in irgendeinem Dokument "spezifiziert", und das Vorgehen ist doch relativ einfach - man könnte auch von Hand irgendeinen Digest und irgendeinen Cipher kombinieren)
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
M pfx-Zertifikat in Tomcat für SSL-Verschlüsselung nutzen Allgemeine Java-Themen 14
X Verschlüsselung Allgemeine Java-Themen 18
P String-Verschlüsselung - Frage zur Sicherheit Allgemeine Java-Themen 21
R Verschlüsselung falsch Allgemeine Java-Themen 3
R Verschlüsselung funktioniert nicht Allgemeine Java-Themen 5
J Passwort Verschlüsselung hash Allgemeine Java-Themen 2
D AES Verschlüsselung / Wirklich AES 128-Bit? Allgemeine Java-Themen 4
I Best Practice Verschlüsselung mit SALT Allgemeine Java-Themen 4
A Mehrfache XOR Verschlüsselung Allgemeine Java-Themen 11
Thallius Moderne sichere synchrone Verschlüsselung mit Java? Allgemeine Java-Themen 3
Ananaskirsche Verschlüsselung mit AES Allgemeine Java-Themen 4
E Verschlüsselung Allgemeine Java-Themen 4
F Schlüsselworte RSA Verschlüsselung implementieren Allgemeine Java-Themen 5
S Key (für AES-Verschlüsselung) aus String Allgemeine Java-Themen 4
M Serialisierung & Verschlüsselung Allgemeine Java-Themen 2
K Problem mit Salted - Verschlüsselung Allgemeine Java-Themen 4
Z Java E-Mail Client mit End-to-End-Verschlüsselung Allgemeine Java-Themen 4
J Verschlüsselung von Text? Allgemeine Java-Themen 2
K Vigenere- Verschlüsselung Allgemeine Java-Themen 13
M Verschlüsselung von Text und Files durch RSA (Encoding Problem) Allgemeine Java-Themen 7
T AES-Verschlüsselung mit eigenem 256 Bit Schlüssel Allgemeine Java-Themen 12
DStrohma Verschlüsselung: SALT aus Passwort generieren? Allgemeine Java-Themen 3
G AES Verschlüsselung nur bis 63 Zeichen Länge Allgemeine Java-Themen 2
M Verschlüsselung mit Cipher Allgemeine Java-Themen 5
B XOR Verschlüsselung Allgemeine Java-Themen 7
S Framework für symetrische und asymetrische Verschlüsselung Allgemeine Java-Themen 3
lumo Verschlüsselung Allgemeine Java-Themen 2
H Verschlüsselung mit Blowfish Allgemeine Java-Themen 14
C Interpreter-Fehler AES verschlüsselung mit MD5 key Allgemeine Java-Themen 6
S AES Verschlüsselung - File Headers korrupt Allgemeine Java-Themen 10
A Datei, UTF-8, NTRU-Verschlüsselung Allgemeine Java-Themen 3
B "Verschlüsselung" mit Passwort (XOR bzw. Modulo) Allgemeine Java-Themen 7
B String Verschlüsselung Allgemeine Java-Themen 6
M Verschlüsselung anwenden Allgemeine Java-Themen 6
J Verschlüsselung Allgemeine Java-Themen 22
T MD5 Verschlüsselung Nullen fehlen? Allgemeine Java-Themen 2
L [Exception] RSA Verschlüsselung. Allgemeine Java-Themen 16
C javamail signatur und verschlüsselung Allgemeine Java-Themen 2
R 128 Bit Verschlüsselung/Entschlüsselung in Java? Allgemeine Java-Themen 6
F RSA-Verschlüsselung Allgemeine Java-Themen 4
S Verschlüsselung in Java Allgemeine Java-Themen 2
G Interessant! Verschlüsselung in Java, Charset in der JVM? Allgemeine Java-Themen 14
D Eigener Key bei AES Verschlüsselung Allgemeine Java-Themen 4
T Verschlüsselung von Dateien Allgemeine Java-Themen 8
S Verschlüsselung - IllegalBlockSizeException Allgemeine Java-Themen 3
G Problem mit RSA Verschlüsselung bei .net und Java Allgemeine Java-Themen 1
D Caesar und Vigenère Verschlüsselung Allgemeine Java-Themen 2
alexpetri Verschlüsselung Allgemeine Java-Themen 13
@ [Sicherheit] Speicherung von Keys für Verschlüsselung Allgemeine Java-Themen 4
P Verschlüsselung in PHP -> Entschlüsselung in Java Allgemeine Java-Themen 2
Lazybone Caeser Verschlüsselung Allgemeine Java-Themen 6
S Verschlüsselung mit Cipher Allgemeine Java-Themen 8
S Verschlüsselung Allgemeine Java-Themen 15
J Problem mit Dateien/XOR-Verschlüsselung Allgemeine Java-Themen 5
G RSA-Verschlüsselung Allgemeine Java-Themen 1
P HMACMD5- Verschlüsselung entschlüsseln Allgemeine Java-Themen 2
J Probleme bei XOR verschlüsselung ! Allgemeine Java-Themen 5
G Verschlüsselung in Java Allgemeine Java-Themen 9
M RSA Verschlüsselung Allgemeine Java-Themen 7
J Verschlüsselung von Daten Allgemeine Java-Themen 21
B Login für User, der im Hintergrund Schedules ausführt Allgemeine Java-Themen 16
L Super User via Processbuilder (Linux) Allgemeine Java-Themen 3
P USER Management in SQL übergreifend auf JAVA Programm Allgemeine Java-Themen 41
OnDemand Logfile pro User / Thread Allgemeine Java-Themen 7
W Java Telegram Bot - Eingabe durch User Allgemeine Java-Themen 2
T Loginname von User an PC im Netzwerk holen Allgemeine Java-Themen 2
K Jar/DLL Abhängigkeiten durch User angeben lassen Allgemeine Java-Themen 6
VfL_Freak JDK installieren System-Property "user.dir" Allgemeine Java-Themen 6
Thallius Konzeptproblem User-Interface Allgemeine Java-Themen 5
Thallius User-Settings: Wie handelt ihr das? Allgemeine Java-Themen 4
Bananabert Swing jtree : image als user object Allgemeine Java-Themen 2
alderwaran .jar Code Signing, User-Keystore und Fragen dazu Allgemeine Java-Themen 0
S Random Passwort für den User + Hashen Allgemeine Java-Themen 6
Guybrush Threepwood Kein user.home unter Windows8 Allgemeine Java-Themen 7
T User Verwaltung mit JPA Allgemeine Java-Themen 2
B Java FTP (common net - user anlegen) Allgemeine Java-Themen 2
C Input/Output Beste Möglichkeit für user non-readable Datei Allgemeine Java-Themen 7
D Daten eines User auslesen. Allgemeine Java-Themen 5
R Welches User-Verzeichnis wählen für Configurationsdateien - Windows Allgemeine Java-Themen 2
R Windows - User Passwort ändern Allgemeine Java-Themen 2
Kr0e User management system Allgemeine Java-Themen 2
B User-Input aus Zahlen und Operatoren - beste Umsetzung? Allgemeine Java-Themen 8
H blinde MAC User Allgemeine Java-Themen 15
H user.dir + verknüpfung Allgemeine Java-Themen 5
S "Guessed User name" bei Tomcat belegen Allgemeine Java-Themen 2
G Java Anwendung für Multi-User Allgemeine Java-Themen 2
K Chatengine User auf Chatbot Allgemeine Java-Themen 3
S Änderung an Proberties datei an alle User weitergeben? Allgemeine Java-Themen 7
P URL mit htaccess in Explorer öffnen (ohne user-passwort) Allgemeine Java-Themen 6
K JUnit 4 User Interaktion Allgemeine Java-Themen 7
P System.getProperty("user.dir") Allgemeine Java-Themen 10
B User Login: JPasswordField + JPasswordField_wdh vergleichen Allgemeine Java-Themen 2
J Suse + Tomcat + Sysdeo Plugin: Tomcat als user starten Allgemeine Java-Themen 2
T User-Kennung im Source hinterlegen? Allgemeine Java-Themen 4
T System.getProperty("user.home") Allgemeine Java-Themen 12
S Simple User Interface Frage Allgemeine Java-Themen 13
D NT User auslesen aus windows 2000 Allgemeine Java-Themen 2
A Synchronisation Datenquelle und Anwendung (Multi-User) Allgemeine Java-Themen 7
D System.getProperty("user.dir") ? Allgemeine Java-Themen 1
H Zugriff auf statische Methode durch mehrere User Allgemeine Java-Themen 19

Ähnliche Java Themen


Oben