精华内容
下载资源
问答
  • 源文件1.txt 经过加密解密 得到2.txt 2.txt中的内容无法还原 以下为代码正文 ``` # -*- coding: utf-8 -*- #AES-demo import base64 from Crypto.Cipher import AES #import struct #采用AES...
  • 压缩包内包含源代码以及打包好的exe文件,分别是jiamifile.py;jiemifile.py;jiamifile.exe,jiemifile.exe 本软件编写环境windows7 64位 python3.7 ...否则一旦遗忘没有人能够对该文件进行解密还原。
  • 公匙加密,发送加密后的数据,私匙解密。 一般使用情景是通过 openssl 生成密匙后再操作的。Linux下生成密匙也很简单。 yum 安装 openssl yum -y install openssl 生成三个密匙文件。 rsa_private_key.pem 私匙...
  • Python 加密文件与解密文件

    千次阅读 热门讨论 2019-12-26 21:09:23
    加密文件 # -*- coding: utf-8 -*- #AES-demo #采用AES对称加密算法 import os import base64 from Crypto.Cipher import AES #import struct def add_to_16(value):# str不是16的倍数那就补足为16的倍数 ...

    话不多说直接上代码
    代码版权归本人所有
    转载请注明出处

    加密文件
    软件下载地址
    提取码:97h2

    # -*- coding: utf-8 -*-
    #AES-demo #采用AES对称加密算法
    import os
    import time
    import psutil
    import base64
    from Crypto.Cipher import AES
    #import struct
    def add_to_16(value):# str不是16的倍数那就补足为16的倍数
        while len(value) % 16 != 0:
            value += '\0'
        return str.encode(value)  # 返回bytes
    def encrypt_oracle():#加密方法
        key = input('\n请设置一个秘钥用于加密文件:')
        time.sleep(1)
        print('\n当被加密文件与本程序不同目录时\n请输入要加密文件完整路径包括文件名以及后缀')
        time.sleep(3)
        print('\n\n当被加密文件与本程序同一目录时只需输入文件名以及后缀:')
        file_path = input('\n\n请输入:')
        filepath,tempfilename = os.path.split(file_path)#filepath源文件所在路径,tempfilename源文件名称包含后缀
        filename,extension = os.path.splitext(tempfilename)#filename源文件名称不包含后缀,extension源文件后缀
        savefile = filename+'已加密'+extension#加密后文件名称
        try:
            try:
                virtualmem = psutil.virtual_memory()#获取本机内存信息
                availablemem = round(virtualmem.available / 3)
                filesize = os.path.getsize(file_path)
                if filesize > availablemem:
                    print("\n\n\n加密文件大于系统可用内存可能影响加密效率或出现内存崩溃\n\n\n")
                    print('\n\n\n是否继续运行 继续操作请按"y"返回请按"n"\n\n\n')
                    temp = input('\n请按键选择')
                    if temp == "n" or temp == "N" :
                        encrypt_oracle()
            except:
                print('\n输入有误,请重新输入')
                encrypt_oracle()
            text = open(file_path, 'rb').read()# 待加密文本
            open(file_path, 'rb').close()
        except:
            print('\n输入有误,请重新输入')
            encrypt_oracle()
        text = str(text)
        aes = AES.new(add_to_16(key), AES.MODE_ECB)# 初始化加密器
        encrypt_aes = aes.encrypt(add_to_16(text))#先进行aes加密
        encrypted_text = str(base64.encodebytes(encrypt_aes), encoding='cp936') #用base64转成字符串形式 # 执行加密并转码返回bytes
        if filepath == "":
            logbat = open(savefile, 'w')
            logbat.write(encrypted_text)
            logbat.close()
            print('\n文件加密成功 文件以保存为 ',savefile)
        else:
            logbat = open(filepath+'\\'+savefile, 'w')
            logbat.write(encrypted_text)
            logbat.close()
            print('\n文件加密成功 文件保存在 ',filepath,'中 \n\n文件名为 ',savefile)
        print('\n软件将在 10 秒后自动退出\n')
        time.sleep(10)
    if __name__ == '__main__':
        print("\n文件加密 作者:刘英\n\n本软件可单独运行也可以放在被加密文件的所在目录运行\n\n被加密文件名称请不要含有特殊字符\n")
        encrypt_oracle()
    

    效果如下
    加密过程
    加密前
    加密后


    解密文件
    软件下载地址
    提取码:ma28

    # -*- coding: utf-8 -*-
    #AES-demo #采用AES对称加密算法
    import os
    import time
    import base64
    from Crypto.Cipher import AES
    #import struct
    def add_to_16(value):# str不是16的倍数那就补足为16的倍数
        while len(value) % 16 != 0:
            value += '\0'
        return str.encode(value)  # 返回bytes
    def decrypt_oralce():#解密方法
        key = input('\n请输入用于解密文件的秘钥:')
        time.sleep(1)
        print('\n当被解密文件与本程序不同目录时\n请输入要解密文件完整路径包括文件名以及后缀')
        time.sleep(3)
        print('\n\n当被解密文件与本程序同一目录时只需输入文件名以及后缀:')
        file_path = input('\n\n请输入:')
        filepath, tempfilename = os.path.split(file_path)
        filename, extension = os.path.splitext(tempfilename)
        try:
            text = open(file_path, 'rb').read()# 待加密文本
            open(file_path, 'rb').close()
        except:
            print('\n输入有误,请重新输入')
            decrypt_oralce()
        savefile = input('\n请输入解密后文件的名字包括后缀 请不要使用特殊符号:')
        text = str(open(file_path, 'r').read())# 密文文件
        open(file_path, 'r').close()
        aes = AES.new(add_to_16(key), AES.MODE_ECB)# 初始化加密器
        base64_decrypted = base64.decodebytes(text.encode(encoding='cp936'))#优先逆向解密base64成bytes
        decrypted_text = str(aes.decrypt(base64_decrypted),encoding='gbk').replace('\0','')#执行解密密并转码返回str
        decrypted_text2 = eval(decrypted_text)
        if filepath == "":
            logbat = open(savefile, 'wb')
            logbat.write(encrypted_text2)
            logbat.close()
            print('\n文件解密成功 文件以保存为 ',savefile)
        else:
            logbat = open(filepath+'\\'+savefile, 'wb')
            logbat.write(encrypted_text2)
            logbat.close()
            print('\n文件解密成功 文件保存在 ',filepath,'中 \n\n文件名为 ',savefile)
        print('\n软件将在 10 秒后自动退出\n')
        time.sleep(10)
    if __name__ == '__main__':
        print("\n文件解密 作者:刘英\n\n本软件可单独运行也可以放在被解密文件的所在目录运行\n\n")
        decrypt_oralce()
    

    效果如下
    解密过程
    解密后效果
    在这里插入图片描述

    from Crypto.Cipher import AES 出错说明没有安装crypto库
    具体安装方法可以参考
    https://www.cnblogs.com/shanghongyun/p/11494052.html

    加密文件时文件太大会出现内存崩溃
    本人电脑性能不太好只测试加密了200M左右大小的文件
    再大点的机器有点卡没测试

    欢迎小伙伴反馈使用感受
    也欢迎小伙伴提出宝贵意见

    喜欢我的小伙伴可以打赏呦

    展开全文
  • python文件加密解密

    千次阅读 2019-07-12 16:30:04
    aes字符方式加密 #!/usr/bin/python # coding:utf-8 import os import sys from Crypto.Cipher import AES #函数的俩参数长度都得是16的倍数 def aes_encrypt(msg, key = "wisdomtetestAES", iv="B1D8D3D0BBD8CFE.....

    #pip install pycrypto
    aes字符方式加密

    #!/usr/bin/python
    # coding:utf-8
    import os
    import sys
    from Crypto.Cipher import AES
    
    #函数的俩参数长度都得是16的倍数
    def aes_encrypt(msg, key = "wisdomtetestAES", iv="B1D8D3D0BBD8CFEC"):
        length = len(msg)
        mod = 16 - length%16
        msg += " " * mod
        aes = AES.new(key, AES.MODE_CBC, iv)
        block = aes.encrypt(msg)
        return block
    
    def aes_decrypt(crypto, key="wisdomtetestAES", iv="B1D8D3D0BBD8CFEC"):
        aes = AES.new(key,AES.MODE_CBC, iv)
        block = aes.decrypt(crypto)
        return block.strip()
    
    if __name__ == "__main__":
        if len(sys.argv) < 3:
            print "python ./des_tool -d filepath"
            print "python ./des_tool -e filepath"
            exit()
        if sys.argv[1] == "-d": #调用解密函数逐行解密
            if not os.path.isfile(sys.argv[2]):
                print sys.argv[2] + " is not vailable file"
                exit()
            decfile = sys.argv[2] + ".decode"
            decfd = open(decfile, "w")
            f = open(sys.argv[2])
            line = f.readline()
            index = 0
            while line:
                line = line.strip("\n")
                line = line.replace("confencoding", "\n")	#由于加密的时候,加密完的块有可能带有换行符,写文件后再读出来解密一行就读不完整(非16的倍数),会出错
                msg = aes_decrypt(line, "wisdomtetestAES", iv = "B1D8D3D0BBD8CFEC")
                decfd.write(msg + "\n")
                line = f.readline()
                index += 1
                if index%10000 == 0:
                    print "decoding file line: " + str(index)	#每解密1w行打印一次信息
            print str(index) + " lines decode finished"
            decfd.close()
            f.close()
    
        if sys.argv[1] == "-e":
            if not os.path.isfile(sys.argv[2]):
                print sys.argv[2] + " is not vailable file"
                exit()
            encfile = sys.argv[2] + ".encode"
            encfd = open(encfile, "w")
            f = open(sys.argv[2])
            line = f.readline()
            index = 0
            while line:
                msg = aes_encrypt(line, "wisdomtetestAES", iv = "B1D8D3D0BBD8CFEC")
                msg = msg.replace("\n", "confencoding")
                encfd.write(msg + "\n")
                line = f.readline()
                index += 1
                if index%10000 == 0:
                    print "encoding file line: " + str(index)
            print str(index) + " lines encode finished"
            encfd.close()
            f.close()
    
    展开全文
  • python加密解密 您是视觉学习者吗? 在YouTube上查看本教程。 点击这里 加密是对信息进行编码的过程,只有授权方才能访问它。 这一点至关重要,因为它可以安全地保护您不希望任何人看到或访问的数据。 在本...

    python加密和解密

    您是视觉学习者吗? 在YouTube上查看本教程。 点击这里

    加密是对信息进行编码的过程,只有授权方才能访问它。 这一点至关重要,因为它可以安全地保护您不希望任何人看到或访问的数据。

    在本教程中,您将学习如何使用Python使用加密库对文件或任何字节对象(也包括字符串对象)进行加密

    我们将使用对称加密,这意味着与加密数据相同的密钥也可用于解密。 那里有很多加密算法,我们要使用的库是建立在AES算法之上的。

    注意:了解加密和 哈希算法 之间的区别很重要 ,在加密中,一旦拥有密钥,便可以检索原始数据,而在 哈希函数中 则不能,因此,它们被称为单向加密。

    让我们从安装加密开始:

    pip3 install cryptography

    打开一个新的Python文件,让我们开始吧:

    from cryptography.fernet import Fernet
    

    生成密钥

    Fernet是对称身份验证密码技术的实现,让我们首先生成该密钥并将其写入文件:

    def write_key () :
        """
        Generates a key and save it into a file
        """
        key = Fernet.generate_key()
        with open( "key.key" , "wb" ) as key_file:
            key_file.write(key)

    generate_key()函数会生成一个新的Fernet密钥,您确实需要将其保存在安全的地方,如果丢失了该密钥,则将无法再解密使用此密钥加密的数据。

    由于此密钥是唯一的,因此我们不会在每次加密任何内容时生成密钥,因此我们需要一个函数来为我们加载该密钥:

    def load_key () :
        """
        Loads the key from the current directory named `key.key`
        """
        return open( "key.key" , "rb" ).read()

    字符串加密

    现在我们知道了如何获取密钥,让我们从加密字符串对象开始,只是为了让您首先熟悉它。

    生成密钥并将其写入文件:

    # generate and write a new key
    write_key()

    让我们加载该密钥:

    # load the previously generated key
    key = load_key()

    一些消息:

    message ="some secret message" .encode()
    

    我们需要对字符串进行编码,以将其转换为适合加密的字节,encode()方法使用utf-8编解码器对该字符串进行编码。 使用该键初始化Fernet类:

    # initialize the Fernet class
    f = Fernet(key)

    加密消息:

    # encrypt the message
    encrypted = f.encrypt(message)

    f.encrypt()方法对传递的数据进行加密,这种加密的结果称为“ Fernet令牌”,并具有强大的隐私性和真实性保证。

    让我们看看它的外观:

    # print how it looks
    print(encrypted)

    输出:

    b'gAAAAABdjSdoqn4kx6XMw_fMx5YT2eaeBBCEue3N2FWHhlXjD6JXJyeELfPrKf0cqGaYkcY6Q0bS22ppTBsNTNw2fU5HVg-c-0o-KVqcYxqWAIG-LVVI_1U='
    

    解密:

    decrypted_encrypted = f.decrypt(encrypted)
    print(decrypted_encrypted)
    b'some secret message'
    

    的确是同一条信息。

    f.decrypt()方法解密Fernet令牌。 成功解密后,这将返回原始明文作为结果,否则将引发异常。

    有关更多详细信息和说明,请查阅密码学的官方文档

    另外,如果您对密码学感兴趣,我个人建议您阅读“ 严重密码学”书,因为它非常适合您并且数学上不太详细。

    翻译自: https://hackernoon.com/how-to-encrypt-and-decrypt-data-in-python-53193yhj

    python加密和解密

    展开全文
  • decrypted), encoding='gbk').replace('\0', '') # 执行解密密并转码返回str decrypted_text2 = eval(decrypted_text) with open("original_file.zip", "wb+") as f: f.write(decrypted_text2) # 加密ss.zip文件成...

    安装Crypto库

    pip install -i https://pypi.tuna.tsinghua.edu.cn/simple pycryptodome

    # AES-demo #采用AES对称加密算法
    
    import base64
    from Crypto.Cipher import AES
    
    
    def add_to_16(value):  # str不是16的倍数那就补足为16的倍数
        while len(value) % 16 != 0:
            value += '\0'
        return str.encode(value)  # 返回bytes
    
    
    def file_content(file, read_type):
        with open(file, read_type) as targetfile:
            for line in targetfile:
                yield line
    
    
    def encrypt_oracle(file, key):
        text = ""
        for i in file_content(file, 'rb'):
            text += str(i)
        aes = AES.new(add_to_16(key), AES.MODE_ECB)  # 初始化加密器
        encrypt_aes = aes.encrypt(add_to_16(text))  # 先进行aes加密
        encrypted_text = str(base64.encodebytes(encrypt_aes), encoding='cp936')  # 用base64转成字符串形式 # 执行加密并转码返回bytes
    
        with open("encrypt_file", "w+") as f:
            f.write(encrypted_text)
    
    
    def decrypt_oralce(encrypt_file, key):
        text = ""
        for i in file_content(encrypt_file, 'r'):
            text += str(i)
        aes = AES.new(add_to_16(key), AES.MODE_ECB)  # 初始化加密器
        base64_decrypted = base64.decodebytes(text.encode(encoding='cp936'))  # 优先逆向解密base64成bytes
        decrypted_text = str(aes.decrypt(base64_decrypted), encoding='gbk').replace('\0', '')  # 执行解密密并转码返回str
        decrypted_text2 = eval(decrypted_text)
    
        with open("original_file.zip", "wb+") as f:
            f.write(decrypted_text2)
    
    # 加密ss.zip文件成encrypt_file,"1111"是秘钥,随便填
    encrypt_oracle("ss.zip", "1111")
    
    # 解密encrypt_file,同时输入秘钥解密
    decrypt_oralce("encrypt_file", "1111")

     

    展开全文
  • python rsa 加密解密

    2020-12-23 13:55:03
    最近有需求,需要研究一下RSA加密解密安全;在网上百度了一下例子文章,很少有文章介绍怎么保存、传输、打印加密后的文本信息,都是千篇一律的。直接在一个脚本,加密后的文本信息赋于变量,然后立马调用解密。仔细...
  • python Aes 加密 解密

    2013-11-26 14:03:00
    工作中需要用python程序使用AES对java程序经过AES加密的文件进行解密,解密后的文件与源文件对比发现后面多了一些字符,查找资料发现原来java在对文件进行加密时...但是其 AES 的 ECB 模式在加密解密时未提供适合的...
  • python基于base64加密解密文件

    千次阅读 2017-12-12 08:12:10
    /usr/bin/python # encoding : utf-8 import base64 def encry(cnf_org): f_org = open(cnf_org,'r') content = f_org.read() content1 = content.encode(encoding='utf-8') content2 = base64
  • 加密解密文件的功能 Dechiffrement_AES.py Rijndael解密功能 main.py 用于加密解密文件的用户界面 矩阵 包含Sbox,InvSbox和Rcon矩阵 MiseEnForme.py 包含将String转换为list并将uint8类型的列表转换为numpy...
  • python 加密解密

    2019-01-14 12:09:00
    对称加密采用了对称密码编码技术,它的特点是文件加密解密使用相同的密钥 发送方和接收方需要持有同一把密钥,发送消息和接收消息均使用该密钥。 相对于非对称加密,对称加密具有更高的加解密速度,但双方都需要...
  • Python加密解密

    2019-06-06 10:43:00
    对称加密采用了对称密码编码技术,它的特点是文件加密解密使用相同的密钥 发送方和接收方需要持有同一把密钥,发送消息和接收消息均使用该密钥。 相对于非对称加密,对称加密具有更高的加解密速度,但双方都需要...
  • /usr/bin/python # -*- coding: UTF-8 -*- from Crypto.Cipher import AES import hashlib class Aescrypt(): def __init__(self, key, model=AES.MODE_CBC, iv='1234567812345678'): self.key = self.Add16(key) ...
  • 该加解密的秘钥是自己输入的密码加电脑固定...这样可以保证加密文件只能在加密时的计算机打开,在其他人的计算机无法打开,不想用这个功能的可以在生成秘钥那里把序列号删掉。 序列号的获取参考我写的这篇文章: ...
  • 使用Fernet库进行Python加密。 脚本生成密钥并加密/解密消息。 用法:生成私钥文件:python3 pyencrypt.py -g -k KEYFILE加密消息:python3 crypto.py -k KEYFILE -e MESSAGE_TO_ENCRYPT解密消息:python3 crypto....
  • python解密excel加密文件

    千次阅读 2020-05-29 01:17:19
    #读取 文件 file = msoffcrypto.OfficeFile(open("/Users/liangchen/django/excel/pwd.xlsx", “rb”)) file.load_key(password=“hpAAhuM8”) print(file.dict) file.decrypt(open(’/Users/liangchen/django/excel...
  • Cryptor加密解密使用Cryptor加密文件。 该程序是完全在python中创建的。 可能使用此范围的人有美国总统,美国总统和像您这样的人。 该cryptor代码是完全开源的,您可以对其进行修改以更好地满足您的需求。 希望...
  • Python 加密文件

    2019-10-01 21:02:09
    目录 1. 基础知识 2. 原理 2.1加密操作 2.2解密操作 2.3生成随机密钥 2.4加密单元 2.5解密单元 ... 3.... 3.1加密文本文件 ... 3.2解密文件 3.3完整代码 ...
  • 简单介绍了一下使用PyCrypto模块实现对字符串的加密解密,里面有提到我利用这个模块写了一个对文本文件进行加密解密的小脚本,这里和大家分享一下。 1.脚本运行流程 脚本非首次运行时,当前目录下存在且仅密文...
  • Python和CLI加密工具集。 安装: 安装软件包。 pip3 install encrypti0n --upgrade && python3 -c "import encrypti0n" --create-alias encrypti0n CLI用法: Usage: encrypti0n <mode> <options> Modes: --...
  • 实现对一个txt文件加密解密 实现 加密: 源文件:1.txt 123456789@qq.com 666666 bacdefg@gmail.com 123.456 aaaaaaaa@163.com 88888888888 print('开始加密...') f = open('1.txt', 'r') fs = open('2.txt', 'w'...
  • md5加密: import hashlib def md5(str): str = str.encode('utf-8') m = hashlib.md5() # 创建一个md5算法... return m.hexdigest() # 获取这个文件的MD5值 base64加密: import base64 #加密 str = str(sign...
  • PyCrypto是一款非常实用的Python加密模块,最近写了一个文件加密脚本需要用到AES加密,和大家分析一下心得。 下载与安装:PyCrypto项目已经于2015年7月停止了,下面是官方的下载地址。 ...
  • 这篇文章主要介绍了Python Des加密解密如何实现软件注册码机器码,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 原理 判断路径下是否存在识别文件,若存在就...
  • 环境python3, 在windows上测试, 代码本身用UTF-8编码 大概100来行 没有注释, 不过应该还是不难看懂的, tkinter主要用的...额外的是多了个自动按时间保存加密后的文件和密钥功能, 可以加密指定文件, 也可以解密指定文件

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 475
精华内容 190
关键字:

python加密解密文件

python 订阅