자바는 초기부터 JCA(Java Cryptography Architecture) 프레임워크를 JDK 1.1부터 제공하여 암호화 기능을 구현하고 있습니다. 구현 가능한 기능들로는 전자서명(digital signatures)이나 인증서의 유효성을 검사하는 등 암호화와 복호화에 관련된 기능을 포함하고 있습니다.
이렇게 위에 언급한 JCA의 기능들은 java.security 패키지를 통해 제공되며 주요 클래스로 Security, Provider 등의 클래스가 존재합니다.
위의 링크는 security 패키지 안에 구현 가능한 다양한 클래스들을 보여주고 있습니다.
기존의 Java에서 제공되던 JCA에서 보안상 미뤄왔던 기능이 JDK 1.4부터 포함되면서 현재는 JCA보다 확장된 JCE 프레임워크가 사용되고 있으며 이것은 javax.crypto 패키지에 포함되어 있습니다. javax.crypto 패키지가 사용되면서 BouncyCastle과 같은 인증된 외부 암호화 라이브러리를 보안 공급자(provider)로 등록하여 사용하는 것과 같이 새로운 알고리즘을 쉽게 추가 후 사용하는 것이 가능해졌습니다.
추가하는 방법으로는 Security클래스의 addProvider()메소드를 사용하여 가능합니다.
public void initialize(KeyProvider keyProvider) throws KeyManagementException {
this.keyProvider = keyProvider;
if (this.aesKeyedCipherProvider == null) {
this.aesKeyedCipherProvider = new AESKeyedCipherProvider();
}
if (Security.getProvider("BC") == null) {
Security.addProvider(new BouncyCastleProvider());
}
}
위의 코드에서 Security.addProvider(new BouncyCastleProvider()); 이 부분이 프로바이더에 새로운 암호화 기술은 BouncyCastleProvider()를 추가하는 구문입니다.
public void initialize(KeyProvider keyProvider) throws KeyManagementException {
this.keyProvider = keyProvider;
if (this.aesKeyedCipherProvider == null) {
this.aesKeyedCipherProvider = new AESKeyedCipherProvider();
}
if (Security.getProvider("BC") == null) {
Security.addProvider(new BouncyCastleProvider());
}
}
※ 참고사항
BouncyCastleProvider를 추가하기 전에 본인의 자바 버전에 맞는 외부 라이브러리 등록을 하셔야 사용이 가능합니다.
아래의 사이트로 이동하셔서 다운로드하신 후 사용하시는 에디터에서 라이브러리로 추가해 주시길 바랍니다.
관련 예제 사이트 링크
'→ My Meta+IT > JAVA Source' 카테고리의 다른 글
자바 테트리스 게임(Tetris App in Java) 프로젝트 (0) | 2022.12.06 |
---|---|
Multi-threaded chatting Application in Java (0) | 2022.12.06 |
이클립스(eclipse IDE) 오라클 클라우드(Oracle cloud) ojdbc11.jar database 연결 접속 성공 (0) | 2022.07.08 |
알파 베타 가지치기/alpha-beta pruning (0) | 2022.02.09 |
MiniMax 미니맥스 알고리즘+JAVA 예제 코드 (0) | 2022.02.09 |
댓글