Different types of keystore in Java -- JCEKS

  Pi Ke        2015-01-05 00:30:56       54,221        1          English  简体中文  繁体中文  ภาษาไทย  Tiếng Việt 

JCEKS là viết tắt của Java Cryptography Extension KeyStore và nó là một định dạng kho khóa thay thế cho nền tảng Java. Lưu trữ khóa trong KeyStore có thể là một biện pháp để ngăn chặn việc lộ khóa mã hóa của bạn. Java KeyStore chứa an toàn các chứng chỉ và khóa riêng lẻ có thể được tham chiếu bằng một bí danh để sử dụng trong chương trình Java.

Quá trình lưu trữ và tải các mục khác nhau trong JCEKS tương tự như JKS thực hiện. Vì vậy, vui lòng tham khảo bài viết Các loại kho khóa khác nhau trong Java -- JKS. Thay đổi loại kho khóa từ JKS thành JCEKS cho phù hợp khi gọi KeyStore.getInstance().

Trong bài viết này, chúng tôi chỉ đề cập đến quá trình lưu trữ khóa bí mật trong kho khóa JCEKS. Mục khóa bí mật sẽ được niêm phong và lưu trữ trong kho khóa để bảo vệ dữ liệu khóa. Vui lòng cung cấp mật khẩu mạnh khi lưu mục vào kho khóa.

Lưu khóa bí mật

Khóa bí mật có thể được lưu trữ trong kho khóa JCEKS với mã bên dưới.

try{
	KeyStore keyStore = KeyStore.getInstance("JCEKS");
	keyStore.load(null, null);
	
	KeyGenerator keyGen = KeyGenerator.getInstance("DES");
	keyGen.init(56);;
	Key key = keyGen.generateKey();
	
	keyStore.setKeyEntry("secret", key, "password".toCharArray(), null);
	
	keyStore.store(new FileOutputStream("output.jceks"), "password".toCharArray());
} catch (Exception ex) {
	ex.printStackTrace();
}

Tải khóa bí mật

Khóa bí mật đã lưu trữ có thể được trích xuất từ kho khóa JCEKS trong Java. Khóa đã trích xuất có thể được sử dụng để mã hóa/giải mã dữ liệu như bình thường.

try{
	KeyStore keyStore = KeyStore.getInstance("JCEKS");
	keyStore.load(new FileInputStream("output.jceks"), "password".toCharArray());
	
	Key key = keyStore.getKey("secret", "password".toCharArray());
	
	System.out.println(key.toString());
} catch (Exception ex) {
	ex.printStackTrace();
}

Kết quả đầu ra là:

javax.crypto.spec.SecretKeySpec@fffe7b9b

Đối với các loại kho khóa khác nhau, vui lòng tham khảo Các loại kho khóa khác nhau trong Java -- Tổng quan.

JAVA  KEYSTORE  JCEKS  TUTORIAL 

       

  RELATED


  1 COMMENT


Anonymous [Reply]@ 2021-03-04 15:02:23

why using "password" twice just after you said "please use strong password" :(



  RANDOM FUN

A broken lock