用python对文件内容进行加密的2种方式

这篇具有很好参考价值的文章主要介绍了用python对文件内容进行加密的2种方式。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

方式1:有时候我们手中文件的内容十分的重要、十分地机密,我们可以选择对此进行加密,代码如下:

from cryptography.fernet import Fernet

def encrypt(filename, key):
    fernet = Fernet(key)
    with open(filename, 'rb') as file:
        original = file.read()
    encrypted = fernet.encrypt(original)
    with open(filename, 'wb') as enc_file:
        enc_file.write(encrypted)
        
key = Fernet.generate_key()
filename = "file.txt"
encrypt(filename, key)

然后对文件内容进行加密,当然这个密钥后面在对文件进行解密的时候会派上用场,因此密钥一定要保存完好,解密的代码如下

def decrypt(filename, key):
    fernet = Fernet(key)
    with open(filename, 'rb') as enc_file:
        encrypted = enc_file.read()
    decrypted = fernet.decrypt(encrypted)
    with open(filename, 'wb') as dec_file:
        dec_file.write(decrypted)

decrypt(filename, key)

上面的脚本,其中的密钥是一个随机生成的随机数,当然密钥也可以是我们自己指定的,代码如下

import pyAesCrypt

def Encryption(input_file_path, output_file_path, key):
    pyAesCrypt.encryptFile(input_file_path, output_file_path, key)
    print("File has been decrypted")

def Decryption(input_file_path, output_file_path, key):
    pyAesCrypt.decryptFile(input_file_path, output_file_path, key)
    print("File has been decrypted")

方式2:使用RSA加密算法实现数据的加密解密:文章来源地址https://www.toymoban.com/news/detail-624251.html

import os
import rsa

def encrypt_file(file_path, public_key_file):
    """使用RSA算法加密文件
    
    参数:
    file_path: 需要加密的文件路径
    public_key_file: 公钥文件路径
    
    返回值:
    无
    """
    # 读取文件内容
    with open(file_path, "rb") as file:
        file_content = file.read()
    # 读取公钥
    with open(public_key_file, "rb") as key_file:
        public_key = rsa.PublicKey.load_pkcs1(key_file.read())
    # 加密文件内容
    encrypted_content = rsa.encrypt(file_content, public_key)
    # 将加密后的内容写入文件
    with open(file_path, "wb") as file:
        file.write(encrypted_content)

def decrypt_file(file_path, private_key_file, password):
    """使用RSA算法解密文件
    
    参数:
    file_path: 需要解密的文件路径
    private_key_file: 私钥文件路径
    password: 私钥文件密码
    
    返回值:
    无
    """
    # 读取文件内容
    with open(file_path, "rb") as file:
        encrypted_content = file.read()
    # 读取私钥
    with open(private_key_file, "rb") as key_file:
        private_key = rsa.PrivateKey.load_pkcs1(key_file.read(), password)
    # 解密文件内容
    file_content = rsa.decrypt(encrypted_content, private_key)
    # 将解密后的内容写入文件
    with open(file_path, "wb") as file:
        file.write(file_content)

到了这里,关于用python对文件内容进行加密的2种方式的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • python3:四种常见方式从远程服务器下载文件(paramiko、requests、wget、urllib2)

    下载一个文件夹时,便可以使用这个方法, paramiko模块提供了ssh及sftp进行远程登录服务器执行命令和上传下载文件的功能。这是一个第三方的软件包,使用之前需要先进行安装 默认会立即下载文件内容并保存到内存中,如果文件很大,会给内存造成压力 如果文件很大,会给

    2024年02月16日
    浏览(49)
  • 【python脚本】python实现:目标检测裁剪图片样本,根据类标签文件进行裁剪保存

    我在进行目标检测时候,比如红绿灯检测,目标区域很小,样本杂乱。 想要筛选错误样本的话,很困难。可以把目标区域裁剪出来。人大脑处理对于这样的异己比较敏感。样本量较少的话可以自己筛一筛。样本量较大的话,可以训练一个分类模型帮你筛一下。 它就可以实现

    2024年02月15日
    浏览(34)
  • 使用 OpenSSL 工具撰写 Bash 脚本进行密码明文的加密与解密

    Written By: Xinyao Tian 本文档描述了使用 OpenSSL 工具在 Bash 脚本中对密码进行加密和解密的简单方式。 使用 Base64 算法进行密码的加密 脚本名称为 encryptPasswd.sh , 脚本内容如下: 使用 Base64 算法进行密码的解密 脚本名称为 decryptPasswd.sh , 脚本内容如下: 使用方法 检视目录中的脚本

    2024年02月06日
    浏览(46)
  • Python结合openpyxl库读取xlsx文件的每一行或每一列的内容进行处理

    openpyxl库是一个很好处理xlsx的python库。接下来,我主要介绍我是如何通过python代码读取xlsx的每一行或每一列的内容的。 一般xlsx第一列都是数据的字段,所以后续处理需要的话,还是先读取这一行再说 如果要看某一列的数据 例如

    2024年02月11日
    浏览(42)
  • python3调用阿里云openapi脚本 - 生产环境

    下文内使用的脚本,主要应用场景为: 在日常使用阿里云服务时,获取数据时,一般都需要调用openapi,下面的脚本为调用阿里云直播接口的脚本,如大家并非使用直播产品的接口,需做以下准备: 查询接口版本,示例:‘Version’:‘2016-11-01’。 阿里云AK的RAM权限。 其他产品

    2024年02月21日
    浏览(31)
  • python3 爬虫相关学习8:python 的常见报错内容 汇总收集

    目录 1 低级错误(比如拼写错误等)  1.1 NameError:  1.2 属性错误 AttributeError:  属性拼写错误 2  应用错误(类型应用,属性使用的错误) 2.1 类型错误 TypeError:  如字符串连接错误 2.2  属性应用错误  AttributeError 3 模块相关错误 3.1 找不到对应模块 ModuleNotFoundError: 3.2 相关模

    2024年02月09日
    浏览(36)
  • python3 爬虫相关学习8:python 的常见报错内容汇总(持续收集ing)

    目录 1 低级错误(比如拼写错误等)  1.1 NameError:  1.2 属性错误 AttributeError:  属性拼写错误 2  应用错误(类型应用,属性使用的错误) 2.1 类型错误 TypeError:  如字符串连接错误 2.2  属性应用错误  AttributeError 3 模块相关错误 3.1 找不到对应模块 ModuleNotFoundError: 3.2 相关模

    2024年02月04日
    浏览(35)
  • python3使用pjsua进行呼叫测试

    环境:CentOS 7.6_x64    Python版本 :3.9.12 pjsip版本:2.13   之前写过一篇CentOS7环境编译python3.9版本pjsua的文章: https://www.cnblogs.com/MikeZhang/p/centos7py39pjsua20230608.html 在上篇文章中我着重介绍了怎样编译python3.9版本的pjsua库,并演示了如何使用,今天记录下CentOS7环境下python3.9使用

    2024年02月10日
    浏览(22)
  • Cisco路由基础:双线策略路由的三种实现方式总结+端口映射

    参考了下网上关于电信+网通双线策略路由的帖子,并结合实际环境,将实现双线策略路由的几种方式总结如下,希望对有需要的朋友有所帮助,双线比单线要复杂多了,但把策略路由的原理弄明白了,就会发现其实并不难。 服务器(网关): eth0 为LAN口,IP为 LAN_IP = 192.1

    2024年02月07日
    浏览(31)
  • 解决报错:找不到命令 “python”,您的意思是 “python3” 命令来自 Debian 软件包 python3 的几种方式

    如果系统中只安装了 Python 3,在执行命令 “python …” 时系统会无法识别,但每次输入 “python3 …” 又觉得有些麻烦和累赘, 因此,以下任意一种方法可以将 “python” 命令关联到 Python 3: 创建软链接: 你可以创建一个指向 Python 3 的软链接,使 “python” 命令自动执行 Py

    2024年02月03日
    浏览(54)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包