我見過很多可以使用 SMIME 加密和發送電子郵件的示例,但沒有加密常規文件的示例。我有一種將密鑰插入 bd 的方法,但我不知道如何使用 bouncycastle 的 SMIME 來加密文件。public CifradoDeArchivos obtenerCifradoDeArchivosParticular( ParametrizacionCifradoArchivosBancos parametrizacionCifradoArchivosBancos) { CifradoDeArchivos newInstance = null; try { // Se realiza la introspección Class<?> clazz = Class .forName(parametrizacionCifradoArchivosBancos .getClaseImplementacion()); Constructor<?> clazzConstructor = clazz.getConstructor(); newInstance = (CifradoDeArchivos) clazzConstructor .newInstance(); } catch (NoClassDefFoundError e) { logger.info(e.getMessage()); } return newInstance; }
1 回答

泛舟湖上清波郎朗
TA貢獻1818條經驗 獲得超3個贊
你可以使用 bouncycastle 提供的 cms 來加密文件,前提是你有公鑰。Smime 更傾向于電子郵件。
片段如下:
CMSEnvelopedDataGenerator enGen = new CMSEnvelopedDataGenerator();
for (Certificate c : certs) {
enGen.addRecipientInfoGenerator(
new JceKeyTransRecipientInfoGenerator((X509Certificate) c));
}
OutputEncryptor encryptor =
new JceCMSContentEncryptorBuilder(CMSAlgorithm.AES256_CBC).setProvider("BC").build();
CMSEnvelopedData envelopedData = enGen.generate(new CMSProcessableByteArray(bos.toByteArray()),
encryptor);
那么加密后的數據將是:
envelopedData.getEncoded()
添加回答
舉報
0/150
提交
取消