我见过很多可以使用 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
提交
取消