栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

如何在AES和PBE中使用Bouncy Castle轻量级API

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

如何在AES和PBE中使用Bouncy Castle轻量级API

我尝试了一下,它似乎起作用了。大量借用BC阶层

org.bouncycastle.jce.provider.test.PBETest

private byte[] decryptWithLWCrypto(byte[] cipher, String password, byte[] salt, final  int iterationCount)        throws Exception{    PKCS12ParametersGenerator pGen = new PKCS12ParametersGenerator(new SHA256Digest());    char[] passwordChars = password.toCharArray();    final byte[] pkcs12PasswordBytes = PBEParametersGenerator .PKCS12PasswordToBytes(passwordChars);    pGen.init(pkcs12PasswordBytes, salt, iterationCount);    CBCBlockCipher aesCBC = new CBCBlockCipher(new AESEngine());    ParametersWithIV aesCBCParams = (ParametersWithIV) pGen.generateDerivedParameters(256, 128);    aesCBC.init(false, aesCBCParams);    PaddedBufferedBlockCipher aesCipher = new PaddedBufferedBlockCipher(aesCBC, new PKCS7Padding());    byte[] plainTemp = new byte[aesCipher.getOutputSize(cipher.length)];    int offset = aesCipher.processBytes(cipher, 0, cipher.length, plainTemp, 0);    int last = aesCipher.doFinal(plainTemp, offset);    final byte[] plain = new byte[offset + last];    System.arraycopy(plainTemp, 0, plain, 0, plain.length);    return plain;}


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/507465.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号