Java에서 비대칭 암호화 키 및 개인 키를 생성하는 방법

2212 단어 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) {
  }
 }
}

본고에서 기술한 것이 여러분의 자바 프로그램 설계에 도움이 되기를 바랍니다.

좋은 웹페이지 즐겨찾기