gpt4 book ai didi

java - 在 AES 中收缩一些密文 block

转载 作者:行者123 更新时间:2023-11-30 11:27:03 24 4
gpt4 key购买 nike

我需要解密我有 key 的 AES 密文。问题是在 Java 中解密时,会发生错误:

javax.crypto.BadPaddingException: Given final block not properly padded

我想这是数据库中持久化数据的问题,并且数据的某些部分已损坏(因为到目前为止没有问题,它不可能是关键)。密文长度为16的倍数。

两个问题:

  1. 如果我删除最后的 16 字节 block ,是否可以解密数据?
  2. 您还有其他建议吗?

最佳答案

如果您可以保证消息长度始终是 AES block 大小(16 字节)的倍数,则可以在加密时使用 NOPADDING 来省略填充规范的填充规范。如果您在不需要填充的模式(即 CTR 模式)下使用 AES,您也可以省略填充。

此外,您始终可以尝试使用 NOPADDING 解密填充的消息,但在某些时候您必须处理明文中的填充。

总的来说,您最好尝试弄清楚为什么您的邮件无法正确解密,而不是尝试解决方法。处理加密货币时的变通办法通常不是一个好主意。

关于java - 在 AES 中收缩一些密文 block ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19496025/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com