当前位置: 首页 > 知识库问答 >
问题:

如何解密只知道密钥长度的AES CBC加密文件

景建业
2023-03-14

我有一个使用AES CBC加密的文件。我只知道密码有6个字符长,可能有10个字符。这个密码被散列为128位密钥。

但是,由于128位密钥解密需要很长时间,我如何解密此文件?

共有1个答案

蒋何平
2023-03-14

生成10个可能的不同字符中的6个字符的每个排列。然后对这些排列进行散列,并与您得到的密码散列进行比较。不应该超过一秒钟左右。10到6次方是1000000个排列,你可以在几毫秒内生成。散列需要最长的时间,取决于算法,它可能需要一分钟,但请放心,你会在很短的时间内找到正确的排列(密码)。

没有必要“解密”128位哈希,从字面上看,这将是浪费时间,因为哈希被设计为“不可解密的”。它们被称为“单向哈希”是有原因的。

但是您仍然需要知道使用哪种散列算法来散列密码以使其工作。

另一种方法是生成所有的排列,并简单地用每个排列解密文件,然后检查是否有一些有效的数据。然而,因为是全血细胞计数,你不知道静脉注射,这也是徒劳的。

 类似资料:
  • 问题内容: 我正在使用3DESC解密数据,但出现以下异常 我的代码: 打印上面使用的所有字节数组 问题答案: DES- EDE密码可与3个不同的子密钥一起使用,因此密钥大小应为24字节(3乘8字节)。如果您只想使用2个键(即在此模式下,第一个键==最后一个键),则只需复制键数组的前8个字节。

  • 这是我的密码 抱歉,如果我的代码一团糟。

  • 我使用mysql aes加密和解密如下: 我读到AES支持128 192和256。我假设默认值是128是正确的吗?因此,鉴于上述查询没有定义密钥长度,它会以默认密钥长度加密和解密吗? 如果是这样,在上面的查询中指定密钥长度会更好吗?因为例如:假设我使用默认值128加密和存储数据,但后来设置更改,256变为默认值,那么这意味着它将无法解密数据,对吗?有没有办法在上面的查询中定义密钥长度? 另外,我用

  • 我被要求为安全类实现AES算法。在实现过程中,我找不到答案,我如何从用户那里接受像密码这样的任意长度的密钥,并将其转换为128、192或256位密钥。我该怎么办?

  • 问题内容: 我正在研究 文本加密和解密 项目(遵循Struts 2) 每当我输入密码和纯文本时,都会收到“无效的AES密钥长度”错误。 服务等级 这是错误 问题答案: 一般须知: 键!=密码 需要键,而不是密码。见下文 这可能是由于策略限制导致无法使用32个字节的密钥。看到其他答案 就你而言 问题是数字1:您要传递密码而不是密钥。 AES仅支持16、24或32字节的密钥大小。您要么需要提供准确的金