자바 프로그래밍 예제
헬로 월드 HelloWorld.java
입력 정수의 합계, 평균 구하기 Average.java
Scanner 클래스를 이용한 사용자 입력 처리 예제 ScannerExam.java
주어진 금액을 만들기 위한 화폐단위별 장수 계산 ChangeMoney.java
가위바위보 게임 GBBGameApp.java
난수를 이용하는 가위바위보 게임 GBBGame.java
두 수의 최대공약수 구하기 GCD.java
헬로 월드 HelloWorld.java
입력 정수의 합계, 평균 구하기 Average.java
Scanner 클래스를 이용한 사용자 입력 처리 예제 ScannerExam.java
주어진 금액을 만들기 위한 화폐단위별 장수 계산 ChangeMoney.java
가위바위보 게임 GBBGameApp.java
난수를 이용하는 가위바위보 게임 GBBGame.java
두 수의 최대공약수 구하기 GCD.java
URL 클래스를 이용한 URL 분석 프로그램 ParseURL.java
원격지 URL의 웹페이지 읽어오기 URLRead.java
URLConnection 클래스 사용 예제 URLConnectionReader.java
소켓 프로그래밍을 이용한 클라이언트-서버간 채팅 예제: ServerEx.java | ClientEx.java
스레드 프로그래밍을 이용한 다자간 채팅 예제: MultiChatServer.java | MultiChatClient.java
GUI 채팅 프로그램 예제: GUIChatServer.java | GUIChatClient.java
UDP 소켓 통신을 이용한 서버-클라이언트 프로그램 예제: UdpServer.java | UdpClient.java
클라이언트와 서버 사이의 파일 전송 예제 FileReceiveServer.java | FileSendClient.java
난수 생성 예제 SecureRandomGen.java
해쉬함수 예제 HashTest.java
파일의 체크섬 확인하기 ChecksumExample.java
해쉬함수를 이용한 동전던지기 게임 CoinToss.java
클라이언트/서버 모델의 인터넷 동전던지기 게임 CoinTossServer.java :
CoinTossClient.java
메시지인증코드(MAC) MACTest.java
패스워드기반 암호화 PBKDF1 PBE1Example.java
패스워드기반 암호화 PBKDF2 PBE2Example.java
패스워드 해쉬 PasswordHash.java
* 난수화된 토큰 인증 TokenLogin.java
- 로그인된 사용자에게 서버가 두개의 토큰(공개토큰, 비밀토큰)을 발급하고 클라이언트는 이를 이용하여 난수화된 로그인정보를 생성하여 자동로그인에 사용함
대칭키 암호 예제 SymEncryption.java
AES 암호 예제 AESTest.java
AES/CBC모드 암호 예제 AESCBCTest.java
파일 암호화 예제 CipherStreamExample.java
RSA 암호화 알고리즘 RSAEncryption.java
Key Factory 예제 KeyFactoryExample.java
키의 파일저장, 읽어오기 예제 RSAKeyFile.java
RSA 암호화/복호화 예제 RSAExample.java
비밀키 전송 KeyTransport.java
RSA 전자서명 알고리즘 RSASignature.java
RSA 전자서명 SignatureExample.java
DSA 전자서명 SignatureExampleDSA.java
ECDSA 전자서명 SignatureExampleECDSA.java
RSA/PSS 전자서명 SignatureExampleRSAPSS.java
전자봉투 Envelope.java
RSA 종합 예제 RSATest.java
Bouncy Castle 이란? Bouncy Castle 은 확장된 기능을 가진 자바암호라이브러리로 인증서 활용 환경이 잘 되어 있음.
Bouncy Castle 이용 환경 구축: http://www.bouncycastle.org/latest_releases.html 에서
http://www.bouncycastle.org/download/bcprov-jdk15on-149.jar 파일을 다운로드하여
현재 사용중인 workspace에 저장. 프로젝트에서 위의 jar 파일을 사용하도록 설정.
이클립스에서 외부 JAR 파일 추가하기: 프로젝트폴더->오른쪽마우스->속성(Properties)->Java Build Path->Liberaries->Add External JARs->다운로드받은 jar파일 선택->OK
SSL 인증서 활용하기
- 서버 EchoServer.java
- 클라이언트 EchoClient.java
인증서 활용하기
- 공인인증서 읽어오기 CertViewExample.java
- 공인인증서 유효성 검증하기 CertValidateExample.java
인증서 종합 활용 예제: 인증서 생성, 인증서 저장, 암호화, 전자서명 CertificateTest.java
* PKMS (Private Key Management Service), 개인 키관리 서비스 PKMS.java
- 사용자가 여러대의 컴퓨팅 기기들을 사용하는 유비쿼터스 환경에서 기기별로 서로 다른 기기인증서를 발급하여 사용할 수 있도록 하는 개인 키관리 서비스
- 사용자가 하나의 인증서에 기반하여 스스로 여러 기기들에서 사용할 수 있는 기기인증서를 발행하여 사용함
두 수의 최대공약수 구하기 GCD.java
역수 계산하기(확장유클리드 알고리즘) ExtendedEuclid.java
모듈러승산 계산하기(Square-and-Multiply) SquareMultiply.java
모듈러승산 테이블 만들기 ExpTable.java
BigInteger 클래스에서의 사칙연산 테스트 BIMath.java
RSA 알고리즘 RSABI.java
ElGamal 암호화 알고리즘 ElGamalBI.java
Schnorr 전자서명 알고리즘 SchnorrSigBI.java
비밀서명(Secret Signature) SecretSig.java
Diffie-Hellman 키합의 DH.java
은닉서명(Blind Signature) BlindSig.java
영지식증명 ZKPSchnorr.java
영지식증명(Non-Interactive) ZKPSchnorrNI.java