python 实现批量文件加密功能

目录
  • 一、源码
    • 1、结果展示
    • 2、源码
  • 二、源码注释
    • 1、所使用依赖包
    • 2、函数功能
    • 3、代码拓展
  • 三、可运行环境

一、源码

1、结果展示

  python自动化办公现在可不是一个陌生的词,也随着人们对自己隐私越来越看重,就会出现这样的需求:每人一个PDF文件,因有个人隐私信息,所以需要对文件进行加密且密码为本人身份证后六位。
  废话不多说,上结论,程序运行结果如下:

  我们去一探究竟,原文件如下:

 获取密码如下:

  将文件加密以后结果如下:

  我们随机打开一个验证一下:

  输入身份证后六位,作为密码即可打开。

2、源码

  可运行源码如下:

import os
from PyPDF2 import PdfFileWriter, PdfFileReader
import pandas as pd

# 全局工作目录
os.chdir("D:\加密")

def main():
    # 1、找文件
    # 获取实习证明原文件的文件名
    rosterfile = os.listdir('.\原文件\\')
    # 获取信息中表的姓名与密码
    name,Password = getPassword()

    # 对每个文件进行加密并保存
    for prove in rosterfile:
        for Name in name:
            if Name in prove:
                i = name.index(Name)
                rosterLast = prove
                rosterNow = '.\文件加密版本\\' + prove
                password = Password[i]
                # 2、加密文件并输出
                encryptionPDF(rosterLast,rosterNow,password)

# 获取了表中姓名信息,并提取身份证后六位作为密码
def getPassword():
    password = []
    name = []
    # 获取Excel列,包括姓名、身份证号
    Name = pd.read_excel('.\名单.xlsx', usecols=[0],names=None)  # 读取项目名称列,不要列名
    Id = pd.read_excel('.\名单.xlsx', usecols=[1],names=None)  # 读取项目名称列,不要列名
    Name1 = Name.values.tolist()
    id = Id.values.tolist()
    # 提取身份证后六位作为密码
    for i in id:
        password.append(str(i[0])[12:18:1])
    # 提取姓名为字符串,原来为list
    for j in Name1:
        name.append(j[0])
    return name,password

# 加密文件并输出
# 变量说明:rosterLast-原PDF文件路径,rosterNow-加密后输出路径,password-加密密码
def encryptionPDF(rosterLast,rosterNow,password):
    pdf_reader = PdfFileReader(r'.\原文件\\%s'%(rosterLast))  # 输入你想要操作的pdf文档的位置/名称
    pdf_writer = PdfFileWriter()

    for page in range(pdf_reader.getNumPages()):
        pdf_writer.addPage(pdf_reader.getPage(page))

    pdf_writer.encrypt(password)  # 写入密码并输出到目的路径
    with open(rosterNow, 'wb') as out:
        pdf_writer.write(out)
    print("文件:%s----已完成加密,密码为:%s"%(rosterLast,password))

# 函数入口
if __name__ == '__main__':
    print("-----开始加密-----")
    main()
    print("-----加密完成-----")

二、源码注释

1、所使用依赖包

  共使用三个函数:

# 文件操作
import os

# 操作PDF文件
from PyPDF2 import PdfFileWriter, PdfFileReader

# 操作数据
import pandas as pd

  在这里我只是简单说明用这些第三方库干了什么,具体学习可参考官方文档或者菜鸟教程。

2、函数功能

  编码过程中也共定义有三个函数,其功能如下:

# 主函数,从这里我们可以看到我整体是如何实现此需求的
def main():

# 功能函数,用来获取文件密码的,然后使用姓名与文件名做匹配,达到本人文件为本人身份证后六位的需求。
def getPassword():

#  功能函数,本次编码的核心,前面都可以作为准备阶段,就是为本函数用来加密文件而提供读取、输出路径以及密码的。
def encryptionPDF(rosterLast,rosterNow,password):

3、代码拓展

  这只是一个很简单的需求,它并不具有普遍性,它可能仅在我电脑上可以运行,当你拷贝走源码以后可能就没法运行了,会报各种各样的错误。
  如果你想直接用,那可能得按照我在编码过程中准备的数据一模一样的去准备。所以它其实只能用作学习交流,想要直接使用不太现实。
  当然可以尝试着在此基础上增加功能或者增加代码的可用性与门槛。例如:获取用户输入的路径,定义密码模板等,让代码具有普遍性,可直接拷贝运行那种的。

三、可运行环境

  那如果你不想改源码,想直接用那怎么办?
  没问题!那你就跟着我来吧,一点一点来。
  首先在D盘创建一个文件夹名为:加密;注意!必须保证它在根目录下!它的路径为D:\加密。然后打开文件创建如下:必须一模一样

  差不多了,原文件放在原文件夹里面,运行以后的文件就在加密版本文件夹里面。
  最重要的就是在名单的表格里面把信息填好,这就是用来设置密码的,表格格式如下:身份证号码格式为数字

  表格只有两列!一列姓名、一列身份证号码。身份证号码为数字类型!

到此这篇关于python 实现批量文件加密功能的文章就介绍到这了,更多相关python 批量文件加密内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • python暴力解压rar加密文件过程详解

    第一次使用csdn写文章,写得不好还请见谅.(运行环境:python3.6) 下了一个带密码的压缩包文件,作为一个刚学python的新手,想着能不能用python暴力破解它,于是在网上搜了很多资料,看着似乎并不是很麻烦,也想试着自己写一个可以暴力破解的程序,在写的过程中却遇到了各种各样的问题,希望大手们能带带我.遇到的问题如下: zipfile和zipfile2似乎都不支持AES解密(https://bugs.python.org/issue9170) 在用rarfile暴力破解时即使密码错误也

  • 基于python实现文件加密功能

    这篇文章主要介绍了基于python实现文件加密功能,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 生活中,有时候我们需要对一些重要的文件进行加密,Python 提供了诸如 hashlib,base64 等便于使用的加密库. 但对于日常学习而言,我们可以借助异或操作,实现一个简单的文件加密程序,从而强化自身的编程能力. 基础知识 在 Python 中异或操作符为:^,也可以记作 XOR.按位异或的意思是:相同值异或为 0,不同值异或为 1.具体来

  • python破解zip加密文件的方法

    首先我们先来桌面创建一个文件 我们创建了一个名为q的txt文件然后我们将它压缩,压缩的时候记得设置上密码 我这边将密码设置为123456, 接下来我们打开我们的编写工具,开始写代码,我这里用的是pycharm,推荐大家使用 这里我们将使用到python的zipfile的模块,编写zip文件口令破解机要从学习 zipfile库的使用方法着手.打开 Python解释器,我们 用help( zipfile)命令进一步了解这个库,并重点看一下 Zip File类中的 extractall方法.这个类和这

  • Python编译成.so文件进行加密后调用的实现

    pyc的破解相对容易,使用cython将python文件编译成.so文件,能在一定程度上增强python源码的私密性. 编译成.so文件 环境准备:cython 测试脚本准备:test.py #-*-coding: UTF-8 -* - class test: def say(self): print 'hello' 脚本编译准备: 3.1 编写compile.py文件,内容如下: #-*-coding: UTF-8 -* - from distutils.core import setup f

  • python中的socket实现ftp客户端和服务器收发文件及md5加密文件

    客户端向服务器发送一个请求,请求内容是一个文件名,服务器在查找自己这边有没有这个文件,如果有的话就发送给客户端 1.客户端 生成socket对象 建立连接 输入想要接收的文件 将输入的文件名发送给服务器 接收服务器发回的关于即将要发送来的文件的大小 发送一条信息给服务器告诉它准备好接收了 接收文件数据 打印全部接收的提示信息 client具体实现的代码如下: # Author: Mr.Xue # 2019.10.29 # socket_ftp_client.py import socket im

  • Python 实现加密过的PDF文件转WORD格式

    实现方法简介 许多文件都支持转换为PDF格式,诸如Word,Excel,PowerPoint,Cad以及图片格式.所以pdf从学校到职场,都可以看到pdf文件的身影. 为了保证了文件的安全性,正常情况下无法对pdf的内容进行编辑.但是相应的我们就无法修改pdf的内容,也不便于pdf资料的使用.虽然现在市面上有很多 pdf 转 word 软件,比如 wps,但大多数的软件是要收费的,并且价格不菲.前些天就有人叫我帮她把 pdf 文档转成 word 的文档.因为写尽调报告需要去查看各种信评资料,往往

  • python实现文件快照加密保护的方法

    本文实例讲述了python实现文件快照加密保护的方法.分享给大家供大家参考.具体如下: 这段代码可以对指定的目录进行扫描,包含子目录,对指定扩展名的文件进行SHA-1加密后存储在cvs文件,以防止文件被篡改 调用方法:python snapper.py > todayCheck.csv # Hello, this is a script written in Python. See http://www.pyhon.org # # Snapper 1.2p # # This script wil

  • python 实现批量文件加密功能

    目录 一.源码 1.结果展示 2.源码 二.源码注释 1.所使用依赖包 2.函数功能 3.代码拓展 三.可运行环境 一.源码 1.结果展示   python自动化办公现在可不是一个陌生的词,也随着人们对自己隐私越来越看重,就会出现这样的需求:每人一个PDF文件,因有个人隐私信息,所以需要对文件进行加密且密码为本人身份证后六位.   废话不多说,上结论,程序运行结果如下:   我们去一探究竟,原文件如下:    获取密码如下:   将文件加密以后结果如下:   我们随机打开一个验证一下:   输入

  • Python编程密码学文件加密与解密代码解析

    目录 本章要点 1 纯文本文件 2 使用置换密码加密文件的源代码 transpositionFileCipher.py 3 运行置换密码加密文件程序的样例 4 文件操作 4.1 打开文件 4.2 数据写入及文件关闭 4.3 读取文件 5 创建main()函数 6 检查文件是否存在 6.1 os.path.exists() 方法 6.2 使用os.path.exists()方法检查输入的文件是否存在 7 使用字符串方法令用户的输入更灵活 7.1 upper().lower()和title()字符串

  • Python实现批量文件整理的示例代码

    目录 引言  一.准备工作 二.制作 excel 的文件清单 三.文件的批量重命名 四.文件的批量删除 引言  批量文件整理一直是日常工作中令人头疼的事,使用 Python 进行大批量文件整理,可以大大提升工作效率.下面来介绍几种批量文件整理的小技巧. 一.准备工作 为了用于实验,我们使用代码生成 200 个 txt 文件,代码如下. for i in range(0, 200): file_name = f'file_{i}.txt' f = open(f'./file/{file_name}

  • Python实现批量文件分类保存的示例代码

    目录 序言 代码展示 效果展示 序言 当我们电脑里面的文本或者或者文件夹太多了,有时候想找到自己想要的文件,只能通过去搜索文件名,要是名字忘记了的话,那你也搜不了吧,当然你可通过后缀名去搜索,但是通过搜索出来的文件只会更多,这还只是文件多的情况下. 如果文件名字基本一样,只有序号不一样呢?那特么眼睛看瞎了估计还没找到. 那么我们可以用Python来对文件进行批量自动分类保存到文件夹,下次找的时候,就很轻松的能够找到了. 我们这里以这两百多个world原始文件为例 代码展示 import os i

  • python密码学实现文件加密教程

    目录 代码 输出 说明 在Python中,可以在传输到通信通道之前加密和解密文件.为此,您必须使用插件 PyCrypto .您可以使用下面给出的命令安装此插件. pip install pycrypto 代码 用密码保护器加密文件的程序代码在下面提到 : # =================Other Configuration================ # Usages : usage = "usage: %prog [options] " # Version Version

  • python实现批量文件重命名

    本文实例为大家分享了python批量文件重命名的具体代码,供大家参考,具体内容如下 问题描述 最近遇到朋友求助,如何将大量文件名前面的某些字符删除. 即将图中文件前的编号删除. Python实现 用到了python中的os模块,os模块中的rename方法可以实现对文件的重命名 import os #path为批量文件的文件夹的路径 path = 'd:\\renamefolder' #文件夹中所有文件的文件名 file_names = os.listdir(path) #外循环遍历所有文件名,

  • python实现ftp文件传输功能

    本文实例为大家分享了python实现ftp文件传输的具体代码,供大家参考,具体内容如下 主要步骤可以分为以下几步: 1.读取文件名 2.检测文件是否存在 3.打开文件 4.检测文件大小 5.发送文件大小和 md5值给客户端 6.等客户端确认 7.开始边读边发数据 服务器端代码: import socket,os,time import hashlib server =socket.socket() server.bind(('0.0.0.0',6666)) server.listen() pri

  • Python编程批量实现md5加密pdf文件

    Python编程实现批量md5加密pdf文件今天在某公众号看到一个关于pdf文件加密模块的介绍,突然有了一个想法,编写一个批量加密某目录下的所有pdf文件.结合md5加密和文件查找等知识,实现这个想法. 运行环境: OS:macOS Monterey Version 12.3.1(英文版) IDE:PyCharm 2020.1 代码分享如下: # 文件      :pdf加密.py # IDE      :PyCharm # 导入加密模块 import pikepdf # 导入操作模块 impo

  • Python实现批量更换指定目录下文件扩展名的方法

    本文实例讲述了Python实现批量更换指定目录下文件扩展名的方法.分享给大家供大家参考,具体如下: #encoding=utf-8 #author: walker #date: 2013-12-06 #function: 深度遍历指定目录,更换指定扩展名 import os import os.path #读入指定目录并转换为绝对路径 rootdir = raw_input('root dir:\n') rootdir = os.path.abspath(rootdir) print('abso

随机推荐