吾爱破解 - LCG - LSG |安卓破解|病毒分析|www.52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

搜索
查看: 1104|回复: 33
收起左侧

[Python] 【原创源码】PDF加密小工具(添加密码)

  [复制链接]
chinapython 发表于 2021-9-24 00:22
大家好,今天提供一个小工具,《PDF加密小工具》
起因:
       某天领导让我帮助他加密一个PDF,添加密码的那种,最简单的那种..........
我一直认为这是一个非常简单、非常简单的事情.........奈何我没有安装PDF编辑软件.......
于是我想,网上不是有小工具嘛,下一个就好了啊.....
意外的事情,就这么简单的事情,网上各种收费,各种fuck....各种编辑器,把这个
作为一个高级功能,花钱才能开通.........我内心曹尼玛奔腾.......
然后:
       我无奈中,决定用代码写一个,随便一搜索,python    pdf加密,随随便便
就找到代码片段,完成加密;
最后:
        我把代码完善了,也加了一个gui界面,方便大家使用,工具是小工具,能用
你就下载吧....
分享链接:
       链接:https://pan.baidu.com/s/1nxopKDhyR5U0Sh0p8KTLVg      提取码:52pj
界面:
微信图片_20210924001755.png

[Python] 纯文本查看 复制代码
# -*- coding: utf-8 -*-
# ☯ Author: ChinaPython
# ☯ Date  : 2021/9/16 19:01
import os
import PySimpleGUI as sg
from PyPDF2 import PdfFileWriter
from PyPDF2 import PdfFileReader


class EncryptTool:
    def __init__(self):
        self.layout = [
            [
                sg.Text(text="阅览密码"),
                sg.InputText(do_not_clear=True, default_text="默认:admin", text_color='gray', key='psw_a', size=(17, 1)),
                sg.Text(text="编辑密码"),
                sg.InputText(do_not_clear=True, default_text="默认:admin", text_color='gray', key='psw_b', size=(17, 1)),
            ],
            [
                sg.Input(do_not_clear=True, default_text='选择需要转换的PDF文件(默认同路径)', text_color='gray', key='path'),
                sg.FileBrowse(button_text='选择文件', key='file'),
            ],
            [
                sg.Input(do_not_clear=True, default_text='转换后PDF文件存储路径', text_color='gray', key='path2'),
                sg.FolderBrowse(button_text='输出目录', key='folder'),
            ],
            [sg.Text(text="", size=(48, 4), background_color="white", text_color="red", key="msg")],
            [sg.Button(button_text='开始加密', key='start', size=(48, 2))],
        ]
        self.window = sg.Window('PDF加密小工具(吾爱破解论坛)', self.layout, icon='icon.ico')

    @staticmethod
    def __encrypt(unencrypted_pdf, read_password, encrypted_pdf=None, owner_password=None):
        unencrypted_pdf = "加密_" + unencrypted_pdf if encrypted_pdf is None else unencrypted_pdf
        owner_password = owner_password if owner_password is None else owner_password
        try:
            content = PdfFileReader(unencrypted_pdf)
            writer = PdfFileWriter()
            [writer.addPage(content.getPage(page)) for page in range(content.getNumPages())]
            writer.encrypt(user_pwd=read_password, owner_pwd=owner_password, use_128bit=False)
            with open(encrypted_pdf, 'wb') as out:
                writer.write(out)
            return os.path.exists(encrypted_pdf)
        except Exception as e:
            return e

    # 运行入口
    def run(self):
        while True:
            event, values = self.window.Read()
            if event == 'start':
                a, b, c, d = values['psw_a'], values['psw_b'], values['path'], values['path2']
                if os.path.exists(c) is False or str(c).lower().endswith(".pdf") is False:
                    self.window.Element('msg').Update("加载目录失败,请检测路径的合法性")
                    continue
                a = "admin" if "默认:" in a or len(a) == 0 else a
                b = "admin" if "默认:" in b or len(b) == 0 else b
                filepath, filename = os.path.split(c)
                d = f"{d}/加密_{filename}" if os.path.isdir(d) is True else f"{filepath}/加密_{filename}"
                msg = self.__encrypt(c, a, d, b)
                if msg is not True:
                    self.window.Element('msg').Update(f"加密失败:{msg}")
                    continue
                self.window.Element('msg').Update(
                    f"阅览密码:{a}\n编辑密码:{b}\n目标文件:{c}\n输出文件:{d}"
                )
            if event is None:
                break
        self.window.close()


if __name__ == '__main__':
    start = EncryptTool()
    start.run()

免费评分

参与人数 11吾爱币 +10 热心值 +10 收起 理由
wi_xue2008 + 1 + 1 谢谢@Thanks!
王图思睿 + 1 + 1 我很赞同!
yanglinman + 1 谢谢@Thanks!
马可菠萝蜜 + 1 + 1 谢谢@Thanks!
blindcat + 1 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!
Joyee + 1 我很赞同!
为之奈何? + 1 + 1 我很赞同!
大凯爺 + 1 我很赞同!
xiangdong + 1 我很赞同!
zhangbaida + 2 + 1 用心讨论,共获提升!
神枪泡泡丶 + 2 + 1 用心讨论,共获提升!

查看全部评分

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

gongxujian1982 发表于 2021-9-25 08:25
chinapython 发表于 2021-9-24 00:55
这么晚竟然还有没有睡的.............

有时候,凌晨熬一下就可以直接吃早餐了,哈哈
 楼主| chinapython 发表于 2021-10-13 22:16
326910369 发表于 2021-10-11 13:32
麻烦加一下批量操作吧  正好需要批量加密

刚修改了一下,批量加密
链接:https://pan.baidu.com/s/1PejaYZuhdDkxDpGu2l3XuQ
提取码:52pj
--来自百度网盘超级会员V6的分享
能用就先用着吧............
gongxujian1982 发表于 2021-9-24 00:41
 楼主| chinapython 发表于 2021-9-24 00:55

这么晚竟然还有没有睡的.............
lingyinGR 发表于 2021-9-24 01:37
大佬啊,没有就自己编写一个
慕容语嫣 发表于 2021-9-24 02:03
感谢分享 试试看
CXC303 发表于 2021-9-24 02:05
多谢分享
ljjanck 发表于 2021-9-24 02:07
这个可以有 收了
山田凉粉 发表于 2021-9-24 08:25
感谢楼主!感谢分享!
blindcat 发表于 2021-9-24 08:26
感谢分享
wapj152321 发表于 2021-9-24 08:28
谢谢分享,收藏备用!
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则 警告:本版块禁止灌水或回复与主题无关内容,违者重罚!

快速回复 收藏帖子 返回列表 搜索

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2021-12-6 14:15

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表