RSA-Verschlüsslung

Status
Nicht offen für weitere Antworten.
S

stev.glasow

Gast
Hallo,
ich suche eine halbwegsbrauchbare Biliothek, die mir das RSA-Verschlüsslungverfahren zur Verfügung stellt. Suns JCE darf nur in den USA und Canada genutzt werden und http://www.cryptix.org/ ist leider nicht online. Kann mir jemand helfen?
 

Maks

Aktives Mitglied
no kloar!
Hab mal eine Seite gefunden auf der das Theoretisch beschrieben wurde, natürlich ohne Java Umsetzung, wenn ich die wieder finde, dann hat man vielleicht auch einen besseren Ansatz (oder Verständnis)
Ich such mal (kann aber nix versprechen)
 
S

stev.glasow

Gast
RSA geht doch nur mit dem JCE, aber eine DES-Verschlüsslung wird unterstützt. Sowas ist auch recht fix gemacht:


Code:
import javax.crypto.*;

//// einen Schlüssel generieren
KeyGenerator gen = KeyGenerator.getInstance("DES");
SecretKey key = gen.generateKey(); 
// diesen sollte man dann irgendwo speichern damit man die Daten auch später wieder entschüsslen kann
// die bytes zum zum speichern erhält man mit key.getEncoded()

///// ver- bzw. entschlüsseln 
byte[] data = ...; 
Cipher cipher  = Cipher.getInstance("DES");
cipher.init(Cipher.ENCRYPT_MODE, key); // DECRYPT_MODE zum entschlüsseln
byte[] geheim = cipher.doFinal(data);

Das wars eigentlich schon.

Eine RSA-Verschlüsslung mit JCE würde ähnlich aussehen, die Schlüssel müsste man nur etwas anders generieren, da man beim dem Verfahren immer ein Schlüssel-Paar braucht.
 

meez

Top Contributor
Hier noch ein kleines Beispiel, um einen Text mit einem Passwort zu ver- und entschüsseln.
Das Passwort muss 8 Zeichen haben.

JCE wird benötigt...;)

Code:
public String encryptString(String plainText, String password) throws Exception {
		Cipher cipher = Cipher.getInstance("DES");
		SecretKey key = new SecretKeySpec(password.getBytes(), "DES");
		cipher.init(Cipher.ENCRYPT_MODE, key);
		byte[] encrypted = cipher.doFinal(plainText.getBytes());
		sun.misc.BASE64Encoder encoder = new sun.misc.BASE64Encoder();
		return encoder.encode(encrypted);
	}

	public String decryptString(String encryptedText, String password) throws Exception {
		Cipher cipher = Cipher.getInstance("DES");
		SecretKey key = new SecretKeySpec(password.getBytes(), "DES");
		cipher.init(Cipher.DECRYPT_MODE, key);
		sun.misc.BASE64Decoder decoder = new sun.misc.BASE64Decoder();
		byte[] decoded = decoder.decodeBuffer(encryptedText);
		return new String(cipher.doFinal(decoded));	
	}
 
Status
Nicht offen für weitere Antworten.

Ähnliche Java Themen

Neue Themen


Oben