机械设备 东莞网站建设,郑州百度网站建设,佛山做外贸网站,家具定制pdf有两种密码方式#xff0c;一种是打开后进入文件内容页面后需要密码才能进行修改等操作#xff0c;网上有很多方式进行移除密码操作#xff0c;第二种是打开就需要密码#xff0c;我这里简单记录一个暴力破解的方式#xff0c;仅供参考 import PyPDF2
import itertools… pdf有两种密码方式一种是打开后进入文件内容页面后需要密码才能进行修改等操作网上有很多方式进行移除密码操作第二种是打开就需要密码我这里简单记录一个暴力破解的方式仅供参考 import PyPDF2
import itertools
import stringdef decrypt_pdf(input_file, output_file, password):with open(input_file, rb) as file:reader PyPDF2.PdfReader(file)if reader.is_encrypted:try:if reader.decrypt(password):writer PyPDF2.PdfWriter()for page in reader.pages:writer.add_page(page)with open(output_file, wb) as output_pdf_file:writer.write(output_pdf_file)print(f解密后文件已保存为: {output_file})return Trueelse:print(f密码{password}错误)except Exception as e:print(f解密失败: {e})else:print(该 PDF 文件没有加密。)return Falsedef generate_passwords(length):characters string.ascii_letters string.digits # 字母加数字方式 可以添加其他字符for password in itertools.product(characters, repeatlength):yield .join(password)if __name__ __main__:input_pdf_path rd:\ # 输入你的加密 PDF 文件路径output_pdf_path rd:\ # 输出解密后文件的路径# 尝试生成长度为1到4的所有可能的密码for length in range(1, 5): # 可调整最大长度print(f尝试长度为 {length} 的密码...)for password in generate_passwords(length):if decrypt_pdf(input_pdf_path, output_pdf_path, password):break