2012-04-09 3 views
1

피어 투 피어 애플리케이션을 작성 중이며 간단한 대칭 암호화를 구현하려고합니다.자바 소켓을 사용하여 간단한 대칭 암호화 구현

나는 이것을하는 방법에 대한 좋은 예를 찾고 있는데, 무료 일 때 어떤 라이브러리를 사용하든 상관하지 않는다.

모든 코드는 소켓 레이어에서 발생하므로 코드를 전혀 변경할 필요가 없습니다.

누군가가 그런 예를 제공 할 수 있습니까?

답변

3

자바는 이미 SSL Sockets와 함께 제공됩니다. 암호화를 수동으로 구현할 필요가 없습니다. 소켓은 모든 것을 독자적으로 처리합니다.

+1

Java에서 SSL을 사용하여 코드를 작성하는 방법을 보려면 http://igorpolevoy.com/public/Wiki.jsp?page=JavaSecurity – ipolevoy

+0

SSL을 생각하면 필요하다고 생각합니다. 사전 공유 키만 사용하고 인증서가 필요없는 SSL 소켓을 사용할 수 있습니까? – Michael

1

Java 암호화 기능이 내장되어 있지 않은 경우 Java 암호화 아키텍처 (JCA) & JCE (Java Cryptography Extension)?

자바 암호화 확장 기능 (JCE)는 암호화, 키 교환에 대한 API를 포함하는 JCA API를 확장

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

및 메시지 인증 코드 (MAC). JCE와 SDK 의 암호화 측면은 모두 플랫폼 독립적 인 완벽한 암호화 API를 제공합니다.

다음은 자바에서 AES를 사용하는 방법의 예 :

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

JCE 체제가 다른 암호화 알고리즘을 사용하기위한 매우 강력하고 유연한 프레임 워크입니다. 새로운 암호화 알고리즘에 동일한 프레임 워크를 사용할 수있게 해주는 제공자 아키텍처를 기반으로합니다. 개발자 관점에서 볼 때 이는 추상화 수준이 높다는 것을 의미하며 알고리즘에 대한 걱정없이 새로운 암호화 알고리즘과 다른 암호화 알고리즘에 대한 공통 API 집합을 의미합니다.

다른 자바 보안 API를 일부 - 같은 JSSE 등 - 은 JCE의 상단에 구현하고, 다른 암호화 알고리즘 (암호화, 메시지 인증 코드 (맥), 및 키 교환을 만들기 위해 그것을 보완하는 알고리즘)을 개발자가 쉽게 사용할 수 있도록 에서 사용할 수 있습니다.

Kristian Antonsen mentioned 또한 SSLSocket을 확인하십시오.


어쨌든, 여기에 또 다른 자바 암호화 라이브러리는 다음과 같습니다

http://bouncycastle.org/java.html