当前位置: 首页 > 面试题库 >

升级到1.45时BouncyCastle AES错误

长孙鸿振
2023-03-14
问题内容

最近从BC 1.34升级到1.45。我正在使用以下代码解码一些先前编码的数据:

    SecretKeySpec skeySpec = new SecretKeySpec(raw, "AES");
    Cipher cipher = Cipher.getInstance("AES");
    cipher.init(Cipher.DECRYPT_MODE, skeySpec);
    byte[] decrypted = cipher.doFinal(encrypted);

使用BC 1.45时,出现以下异常:

javax.crypto.BadPaddingException: pad block corrupted
 at org.bouncycastle.jce.provider.JCEBlockCipher.engineDoFinal(JCEBlockCipher.java:715)
 at javax.crypto.Cipher.doFinal(Cipher.java:1090)

编辑:有关此问题的更多信息。我正在使用以下内容从密码短语生成原始密钥:

    KeyGenerator kgen = KeyGenerator.getInstance("AES", "BC");
    SecureRandom sr = SecureRandom.getInstance("SHA1PRNG", "Crypto");
    sr.setSeed(seed);
    kgen.init(128, sr);
    SecretKey skey = kgen.generateKey();
    byte[] raw = skey.getEncoded();

我发现这导致BC 1.34与1.45的两个不同值。

它也可能与BouncyCastle不相关(我正在Android 2.3上进行测试)


问题答案:

看起来问题在于SecureRandom无法跨Froyo-Gingerbread边界移植。这篇文章描述了类似的问题:

http://groups.google.com/group/android-security-
discuss/browse_thread/thread/6ec015a33784b925

我不确定SecureRandom中到底发生了什么变化,但是我发现解决此问题的唯一方法是使用通过可移植方法生成的密钥重新加密数据。



 类似资料:
  • 我相信我已经为4.1准备好了所有的依赖项,但是当我使用作曲家更新时,我会出现以下错误: 生成自动加载文件 脚本php artisan clear已编译,处理返回的更新后cmd事件时出错: 脚本php artisan optimize处理返回的更新后cmd事件时出错: 我的composer文件如下所示: { }

  • 当我将我的keycloak版本从3.2.1升级到4.5时,我遇到了以下异常。如果我从3.2.1转到keycloak 4.2.1我就不明白了。看起来像是keycloak 4.5特有的东西。

  • 当我试图使用官方指南将我们现有的项目从Laravel5.1更新到Laravel5.2时,我在composer更新后得到了一个错误 php artisan clear已编译 他跑了。这里是错误。 类\Foundation\Composer不存在 有人有类似的问题吗?当我用无脚本标志运行作曲家更新时,它会定期更新,所以这是一个清晰编译的问题。 下面是我的服务提供商和作曲家。json文件。 服务提供者

  • 我们目前正在使用搜索踢宝石,它的工作原理很棒。最近我尝试在本地开发环境中将elasticsearch升级到7。我得到了它,并使用家庭酿造运行(研究后,我需要运行)。当我去重新索引我的模型之一时,我得到了以下映射错误: 使用elasticsearch 6.8.4时不会出现此错误。有人能给我指一个解决这个问题的资源吗?

  • 我使用WebPack4将Angular从Angular.js1.6.6升级到Angular 6: 创建自定义别名,向tsconfig添加正确路径,Webpack构建通过并产生输出,但当应用程序在浏览器中启动时,控制台中弹出错误:n格鲁特丢失或不正确的ng模块组件没有正确执行什么操作&如何修复此错误?

  • 在我的环境中,我需要将mongodb从3.2升级到3.6。对于该进程,我首先按照建议从3.2迁移到3.4。在成功迁移到3.4后,我开始迁移到3.6我无法启动Mongod。当检查日志文件时,我发现错误如下:重要:升级问题:数据文件需要完全升级到3.4版本,然后才尝试升级到3.6;有关更多细节,请参见http://dochub.mongodb.org/core/3.6-upgrade-fcv。 我的妈