Java에서 비대칭 암호화 키 및 개인 키를 생성하는 방법
비대칭형 암호화는 여러 클라이언트와 서버 간의 비밀 통신에 매우 적합하다. 클라이언트는 같은 공공 키를 사용하여 명문을 암호화한다. 이 공공 키는 역방향으로 복호화할 수 없다. 암호가 서버에 전송된 후에 서버 측이 개인 키로 복호화하면 명문의 암호화 전송을 할 수 있다.
비대칭형 암호화도 선천적인 단점이 있다. 암호화, 복호화 속도가 느려서 그 발휘를 제약한다. 만약에 대량의 문자가 암호화 전송을 필요로 한다면 비대칭형 암호화를 통해 대칭형'키'를 클라이언트에게 나누어 주고 대칭형'키'를 제때에 업데이트하는 것을 권장한다.
KeyRSA.java는 다음과 같습니다.
import java.io.*;
import java.security.*;
import javax.crypto.*;
import javax.crypto.spec.*;
/**
* RSA
*/
public class KeyRSA {
private KeyPairGenerator kpg = null;
private KeyPair kp = null;
private PublicKey public_key = null;
private PrivateKey private_key = null;
private FileOutputStream public_file_out = null;
private ObjectOutputStream public_object_out = null;
private FileOutputStream private_file_out = null;
private ObjectOutputStream private_object_out = null;
/**
*
* @param in ( :512~2048)
* @throws NoSuchAlgorithmException
*/
public KeyRSA(int in, String address) throws NoSuchAlgorithmException,
FileNotFoundException, IOException {
kpg = KeyPairGenerator.getInstance("RSA"); // ‘ '
kpg.initialize(in); // ( :512~2048)
kp = kpg.genKeyPair(); // ‘ ',
public_key = kp.getPublic(); //
private_key = kp.getPrivate(); //
//
public_file_out = new FileOutputStream(address + "/public_key.dat");
public_object_out = new ObjectOutputStream(public_file_out);
public_object_out.writeObject(public_key);
//
private_file_out = new FileOutputStream(address + "/private_key.dat");
private_object_out = new ObjectOutputStream(private_file_out);
private_object_out.writeObject(private_key);
}
public static void main(String[] args) {
try {
new KeyRSA(1024, "c:/key_rsa");
}
catch (IOException ex) {
}
catch (NoSuchAlgorithmException ex) {
}
}
}
본고에서 기술한 것이 여러분의 자바 프로그램 설계에 도움이 되기를 바랍니다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
JPA + QueryDSL 계층형 댓글, 대댓글 구현(2)이번엔 전편에 이어서 계층형 댓글, 대댓글을 다시 리팩토링해볼 예정이다. 이전 게시글에서는 계층형 댓글, 대댓글을 구현은 되었지만 N+1 문제가 있었다. 이번에는 그 N+1 문제를 해결해 볼 것이다. 위의 로직은 이...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.