在Python中解密VIM加密文件

3 投票
3 回答
2316 浏览
提问于 2025-04-15 19:45

在我的Python网页应用中,我需要解密一个用VIM加密的文件。假设这个网页应用知道用来加密文件的密码,我该怎么写代码来解密呢?

3 个回答

0

这是Python3版本的代码:

from pathlib import Path

from zipfile import _ZipDecrypter

print(_ZipDecrypter(b"<password>")(Path(r"<path>").read_bytes()[12:]).decode("utf8"))
1

我写了一个工具,正好可以做到这一点,并且还支持一些更新的加密方法:

https://github.com/nlitsme/vimdecrypt

7

原来,vim使用的加密方式和PKZIP是一样的:

from zipfile import _ZipDecrypter

fp = open(somefile, 'rb')
zd = _ZipDecrypter(somekey)

fp.read(12)
print ''.join(zd(c) for c in fp.read())

fp.close()

撰写回答