Có cách nào để tạo cặp khóa 128 bit phù hợp để mã hóa bằng chương trình keytool của Sun không? Dường như các thuật toán có sẵn trong http://java.sun.com/javase/6/docs/technotes/guides/security/StandardNames.html#KeyPairGenerator không được hỗ trợ hoặc không cho phép các khóa ngắn hơn 512 bit.Tạo khóa 128 bit bằng công cụ khóa
Cặp khóa sẽ được sử dụng với ff. đoạn mã:
Security.addProvider(new BouncyCastleProvider());
KeyStore keyStore = KeyStore.getInstance("PKCS12");
FileInputStream keyStoreSource = new FileInputStream("keystore");
try {
keyStore.load(keyStoreSource, "password".toCharArray());
} finally {
keyStoreSource.close();
}
String alias = (String) keyStore.aliases().nextElement();
PrivateKey privateKey = (PrivateKey) keyStore.getKey(alias, "password".toCharArray());
X509Certificate certificate = (X509Certificate) keyStore.getCertificate(alias);
CMSEnvelopedDataStreamGenerator generator = new CMSEnvelopedDataStreamGenerator();
generator.addKeyTransRecipient(certificate);
OutputStream output2 = generator.open(output, CMSEnvelopedDataGenerator.AES128_CBC, BouncyCastleProvider.PROVIDER_NAME);
try {
IOUtils.copy(input, output2);
} finally {
output2.close();
output.close();
}
trong đó đầu ra là một số OutputStream nơi dữ liệu được mã hóa sẽ được lưu và nhập vào là một số InputStream nơi dữ liệu văn bản thuần sẽ được đọc.
tôi đang tìm kiếm để tạo ra một cert thử nghiệm để sử dụng với AES-128. Tôi có đi sai đường không? –
Bạn có thể giải thích chi tiết hơn một chút về những gì bạn muốn thực hiện không? –
Đã cập nhật câu hỏi với đoạn mã mà cặp khóa được tạo sẽ được sử dụng. –