Tôi đang cố gắng lưu khóa cá nhân trong tệp pem, được bảo vệ bằng mật khẩu. Vấn đề là, tệp pem được tạo và i thậm chí có thể mở nó bằng openssl nhưng không yêu cầu mật khẩu!JAVA: Cách lưu khóa cá nhân trong tệp pem bằng mật khẩu bảo vệ
Đây là mã:
KeyPairGenerator keygen = KeyPairGenerator.getInstance("RSA");
keygen.initialize(2048);
KeyPair keypair = keygen.generateKeyPair();
PrivateKey privKey = keypair.getPrivate();
PKCS8Generator encryptorBuilder = new PKCS8Generator(privKey);
encryptorBuilder.setPassword("testing".toCharArray());
PEMWriter writer = new PEMWriter(new FileWriter(new File("pk.pem")));
PemObject obj = encryptorBuilder.generate();
writer.writeObject(obj);
writer.flush();
writer.close();
Sau khi nó thực thi, tôi cố gắng để mở file pk.pem
openssl rsa -in pk.pem -check
và nó mang lại:
RSA key ok
writing RSA key
-----BEGIN RSA PRIVATE KEY-----
(... some key appears here ...)
-----END RSA PRIVATE KEY-----
Nó được giả để yêu cầu mật khẩu trước khi cấp quyền truy cập vào khóa riêng! Một số người có thể giúp tôi không?
Cảm ơn bạn rất nhiều! Tôi không biết điều đó ... và tôi cũng không biết tôi đang sử dụng phiên bản BC lỗi thời. Một lần nữa cảm ơn bạn. – Snox
Cập nhật câu trả lời, tôi đã có đủ đại diện anyway :) –