2012-04-09 11 views
1

Ich schreibe eine Peer-to-Peer-Anwendung, und ich möchte einfache symmetrische Verschlüsselung implementieren.Implementieren einfache symmetrische Verschlüsselung mit Java-Sockets

Ich bin auf der Suche nach einem guten Beispiel dafür, wie es geht, mir ist egal, welche Bibliothek es verwendet, solange es kostenlos ist.

Vorzugsweise würde die gesamte Verschlüsselung in der Socket-Ebene passieren, so dass ich meinen Code überhaupt nicht ändern müsste.

Kann jemand solch ein Beispiel zur Verfügung stellen?

Antwort

3

Java bereits mit SSL Sockets kommt. Die Verschlüsselung muss nicht manuell implementiert werden. Der Socket kümmert sich um alles selbst.

+1

Um zu sehen, wie Sie Code mit SSL in Java schreiben, werfen Sie einen Blick auf diese Seite: http://igorpolevoy.com/public/Wiki.jsp?page=JavaSecurity – ipolevoy

+0

wenn ich an SSL denke, denke ich daran, zu brauchen Zertifikate, ist es möglich, SSL-Sockets mit nur einem Pre-Shared-Key zu verwenden und keine Zertifikate benötigt? – Michael

1

Nicht Java hat Kryptographie eingebaut in ... Java Cryptography Architecture (JCA) & Java Kryptographie-Erweiterung (JCE)?

http://docs.oracle.com/javase/1.4.2/docs/guide/security/CryptoSpec.html#ProviderArch

Die Java Cryptography Extension (JCE) erweitert die JCA API APIs für Verschlüsselung, Schlüsselaustausch und Message Authentication Code (MAC) aufzunehmen. Zusammen bieten das JCE und die Kryptographieaspekte des SDK eine vollständige plattformunabhängige Kryptographie-API.

Hier ist ein Beispiel dafür, wie AES zu verwenden, in Java:

http://java.sun.com/developer/technicalArticles/Security/AES/AES_v1.html

Der JCE-Framework ist ein sehr leistungsfähiges und flexibles Framework verschiedene Verschlüsselungsalgorithmen für die Verwendung. Es basiert auf einer Architektur des Anbieters, die es ermöglicht, das gleiche Framework für neuere Verschlüsselungsalgorithmen zu verwenden. Aus einer Entwicklerperspektive bedeutet dies eine höhere Abstraktionsebene und einen gemeinsamen Satz von APIs für neuere und verschiedene kryptografische Algorithmen - ohne sich um die inneren Abläufe des Algorithmus kümmern zu müssen.

Einige der anderen Java-Sicherheits APIs - wie JSSE - sind auf der JCE umgesetzt, und es ergänzen die verschiedenen Verschlüsselungsalgorithmen (Chiffren, Message Authentication Codes (MACs) und Key Exchange zu machen Algorithmen) in einer Entwickler-freundlichen Weise verfügbar.

Auch als Kristian Antonsen mentioned, überprüfen Sie SSLSocket.


Wie auch immer, hier ist eine andere Java-Kryptographie-Bibliothek:

http://bouncycastle.org/java.html

Verwandte Themen