Encryption 无法理解MS Word 2007文档加密

Encryption 无法理解MS Word 2007文档加密,encryption,hash,ms-word,ms-office,reverse-engineering,Encryption,Hash,Ms Word,Ms Office,Reverse Engineering,好的,在安全和超级用户被拒绝后,我第三次怀疑: 所以我读了文档 答案也有帮助 似乎有三种主要的加密模式。我创建了一个模拟文档并对其进行了密码保护。经过一些窥探,我猜我的文档使用了RC4加密方法。以下是位于0x1200地址的加密头: 根据该文件,前4个字节是主要版本,其次是Salt、EncryptedVerifier、EncryptedVerifierHash,每16个字节 给出了密钥推导算法: 我的文档的密码是x个单字符。我试图首先导出EncryptedVerifier,我认为它是一个随机数。然

好的,在安全和超级用户被拒绝后,我第三次怀疑:

所以我读了文档 答案也有帮助

似乎有三种主要的加密模式。我创建了一个模拟文档并对其进行了密码保护。经过一些窥探,我猜我的文档使用了RC4加密方法。以下是位于0x1200地址的加密头:

根据该文件,前4个字节是主要版本,其次是Salt、EncryptedVerifier、EncryptedVerifierHash,每16个字节

给出了密钥推导算法:

我的文档的密码是x个单字符。我试图首先导出EncryptedVerifier,我认为它是一个随机数。然而,我得到了不同的结果: 加密密钥派生算法在派生截断哈希之前非常简单。在这之后,我对我应该做什么感到困惑

我只是从文档中获取EncryptedVerifier,然后使用RC4算法将其解密,密钥为MD5TruncatedHash+00000000。但是当我对它进行散列并将其与解密后的EncryptedVerifierHash进行比较时,两个结果是不同的

守则的一部分是:

>>> import hashlib
>>> h0 = hashlib.md5()
>>> h0.update('x')
>>> h0 = h0.hexdigest()
>>> h0
'9dd4e461268c8034f5c8564e155c67a6'
>>> h0tr = h0[0:10]
>>> h0tr
'9dd4e46126'
>>> ibuff = h0tr + '27cf349fa9865053ad6658e942c4bb8c'
>>> buff = ibuff * 16
>>> len(buff)/2
336
>>> h1 = hashlib.md5()
>>> h1.update(buff)
>>> h1 = h1.hexdigest()
>>> h1tr = h1[0:10]
>>> hf = hashlib.md5()
>>> hf.update(h1tr + '00000000')
>>> hf = hf.hexdigest()
>>> hf
'43e94942913b933273f5c65d3c859723'
我正在使用该网站进行RC4加密/解密

我做错了什么?如果您需要文档中的其他内容,请告诉我。 谢谢

>>> import hashlib
>>> h0 = hashlib.md5()
>>> h0.update('x')
>>> h0 = h0.hexdigest()
>>> h0
'9dd4e461268c8034f5c8564e155c67a6'
>>> h0tr = h0[0:10]
>>> h0tr
'9dd4e46126'
>>> ibuff = h0tr + '27cf349fa9865053ad6658e942c4bb8c'
>>> buff = ibuff * 16
>>> len(buff)/2
336
>>> h1 = hashlib.md5()
>>> h1.update(buff)
>>> h1 = h1.hexdigest()
>>> h1tr = h1[0:10]
>>> hf = hashlib.md5()
>>> hf.update(h1tr + '00000000')
>>> hf = hf.hexdigest()
>>> hf
'43e94942913b933273f5c65d3c859723'