zip文件使用的加密算法是什么?

时间:2014-07-07 12:17:46

标签: c++ algorithm encryption zip

我只想知道用于生成加密zip文件时使用的伪随机值的确切公式(或算法)。我正在尝试创建密码黑客(用于zip文件),我还需要知道如何验证我的程序生成的随机密码是否正确。我试图在谷歌搜索这个答案,但我找不到直接的解决方案。

我正在尝试用c ++编写这个zip黑客。

注意:通过公式(或算法)我的意思是:密钥派生函数。 我只想尽快获得必要的信息,这就是我在这里发布的原因!

2 个答案:

答案 0 :(得分:3)

不同版本的zip文件采用不同的方式,但基本上你有一个加密标头,根据zip文件specification指定使用的加密。

例如,强加密标头如下所示,并在AlgID字段中指定加密算法。

4.5.12 -Strong Encryption Header (0x0017):

    Value     Size     Description
    -----     ----     -----------
    0x0017    2 bytes  Tag for this "extra" block type
    TSize     2 bytes  Size of data that follows
    Format    2 bytes  Format definition for this record
    AlgID     2 bytes  Encryption algorithm identifier
    Bitlen    2 bytes  Bit length of encryption key
    Flags     2 bytes  Processing flags
    CertData  TSize-8  Certificate decryption extra field data
                       (refer to the explanation for CertData
                        in the section describing the 
                        Certificate Processing Method under 
                        the Strong Encryption Specification)

答案 1 :(得分:0)

7-zip使用AES-256加密7z / zip档案。(see here

7-Zip还支持使用AES-256算法进行加密。该算法使用长度为256位的密码密钥。要创建该密钥,7-Zip使用基于SHA-256哈希算法的派生函数。密钥派生函数从用户定义的文本密码生成派生密钥。为了增加穷举搜索密码的成本,7-Zip使用大量迭代从文本密码生成密码密钥。 另外,请记住,暴力攻击是浪费时间。我不会详细说明为什么,我会将你引导到杰夫阿特伍德的博客,他有一个excellent post

相关问题