亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

是否可以通過 java 中的 bouncycastle 使用 SMIME 加密常規文件

是否可以通過 java 中的 bouncycastle 使用 SMIME 加密常規文件

浮云間 2023-06-14 14:24:22
我見過很多可以使用 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()


查看完整回答
反對 回復 2023-06-14
  • 1 回答
  • 0 關注
  • 149 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號