Generate public key và private key sử dụng class KeyPairGenerator trong Java

Thuật toán mã hoá RSA sử dụng một cặp public key và private key để hiện thực cơ chế bảo mật. Public key dùng để mã hoá thông tin và private key được sử dụng để giải mã thông tin và ngược lại. Java cung cấp cho chúng ta một số class để làm việc với thuật toán RSA nằm trong package java.security. Trong bài viết này, mình hướng dẫn các bạn cách sử dụng class KeyPairGenerator của Java Security để generate một cặp public key và private key để sử dụng các bạn nhé!

Mình sẽ tạo một main class để làm ví dụ như sau:

Đầu tiên, các bạn cần khởi tạo đối tượng KeyPairGenerator sử dụng phương thức static getInstance() với thuật toán RSA và kích thước 1024 hoặc 2048 như sau:

Sử dụng phương thức generateKeyPair() của đối tượng KeyPairGenerator, các bạn sẽ generate được một cặp public key và private key, thông tin được chứa trong đối tượng KeyPair:

Từ đối tượng KeyPair này, các bạn có thể lấy đối tượng chứa public key và private key như sau:

Các bạn có thể lấy thông tin định dạng của public key và private key như sau:

Kết quả của mình khi chạy như sau:

Generate public key và private key sử dụng class KeyPairGenerator trong Java

Như các bạn thấy, định dạng mặc định của public key là X.509 và private key là PKCS#8. Các bạn tìm hiểu thêm về các định dạng này trên mạng nhé!

Để lưu lại public key và private key này ra file, các bạn có thể sử dụng phương thức sau:

Toàn bộ code ví dụ của mình như sau:

Các bạn hãy thay thế đường dẫn tới output file theo ý của mình nhé.

Chạy ví dụ rồi kiểm tra kết quả các bạn nhé!

Add Comment