Was sind einige gute Möglichkeiten, um Dateien mit Python zu verschlüsseln?


Beste Antwort

Es gibt viele Optionen zum Verschlüsseln einer Datei in Python.

Verwenden der PyCrypto-Bibliothek: PyCrypto ist eine Sammlung sicherer Hash-Funktionen und verschiedener Verschlüsselungsalgorithmen. Installieren Sie zuerst PyCrypto Paket durch Ausführen dieses Befehls auf CMD

pip install pycrypto

Der Code für die Dateiverschlüsselung mit dem AES-Algorithmus ist unten dargestellt.

import os, random, struct

from Crypto.Cipher import AES

def encrypt\_file(key, in\_filename, out\_filename=None, chunksize=64*1024):

""" Encrypts a file using AES (CBC mode) with the

given key.

key:

The encryption key - a string that must be

either 16, 24 or 32 bytes long. Longer keys

are more secure.

in\_filename:

Name of the input file

out\_filename:

If None, ".enc" will be used.

chunksize:

uses to read and encrypt the file. Larger chunk

sizes can be faster for some files and machines.

chunksize must be divisible by 16.

"""

if not out\_filename:

out\_filename = in\_filename + ".enc"

iv = "".join(chr(random.randint(0, 0xFF)) for i in range(16))

encryptor = AES.new(key, AES.MODE\_CBC, iv)

filesize = os.path.getsize(in\_filename)

with open(in\_filename, "rb") as infile:

with open(out\_filename, "wb") as outfile:

outfile.write(struct.pack("

outfile.write(iv)

while True:

chunk = infile.read(chunksize)

if len(chunk) == 0:

break

elif len(chunk) \% 16 != 0:

chunk += " " * (16 - len(chunk) \% 16)

outfile.write(encryptor.encrypt(chunk))

Verwenden von PyAesCrypt: Python-Modul zur Verschlüsselung von drei Dateien, das AES256-CBC zum Ver- und Entschlüsseln von Dateien verwendet

pip install pyAesCrypt

Beispielcode unten:

import pyAesCrypt

# encryption/decryption buffer size - 64K

bufferSize = 64 * 1024

password = "foopassword"

# encrypt

pyAesCrypt.encryptFile("data.txt", "data.txt.aes", password, bufferSize)

# decrypt

pyAesCrypt.decryptFile("data.txt.aes", "dataout.txt", password, bufferSize)

Die Python-Kryptografie-Bibliothek kann auch eine gute Option für die Verschlüsselung sein

Antwort

Der einfachste Weg, Dateien mit Python zu verschlüsseln, ist die Verwendung von Kryptografiemodul .

1.Installation:

pip/pip3 install cryptography

2.Code:

Wir haben eine Videodatei mit dem Namen " myvideo.mp4 " um es und das Hauptprogramm zu verschlüsseln "main.py" .

"""

filename: main.py

author: SANDIPAN CHOWDHURY

purpose: Encrypting any file

This program is posted on Quora on 9th January, 2021

"""

#imports

from cryptography.fernet import Fernet

def sancrypt(filename):

"This function Encrypt the file"

key=Fernet.generate\_key()

key\_master=Fernet(key)

with open (filename,"rb") as f:

data=f.read()

encr\_data=key\_master.encrypt(data)

with open(filename+".sancrypted","wb") as f:

f.write(encr\_data)

with open(filename+".key","wb") as f:

f.write(key)

def desancrypt(filename,keyfilename):

"This function decrypt the filename with keyfilename"

with open(filename,"rb") as f:

encr\_data=f.read()

with open(keyfilename,"rb") as f:

key=f.read()

keymaster=Fernet(key)

decr\_data=keymaster.decrypt(encr\_data)

with open(filename.replace(".sancrypted",""),"wb") as f:

def main():

x=input("""

1. Encrypt

2. Decrypt

Enter a number?

""")

if x=="1":

filename=input("Enter a filename: ")

try:

sancrypt(filename)

print("File Encrypted.")

main()

except Exception as e:

print("File Encryption Failed")

print(str(e))

main()

elif x=="2":

filename=input("Enter filename with ".sancrypted" extension: ")

keyfile=input("Enter filename with ".key" extension: ")

try:

desancrypt(filename,keyfile)

print("File Decrypted.")

main()

except Exception as e:

print("Decryption Failed.")

print(str(e))

main()

else:

print("Invalid Input. Must be 1 or 2")

main()

if \_\_name\_\_=="\_\_main\_\_":

main()

Versuchen Sie immer, die richtige Schlüsseldatei für die korrekte zu verwenden Datendatei, entweder scheitert es sicherlich. Das Schreiben dieses Programms dauert ungefähr 30 Minuten. Bitte stimmen Sie meiner Antwort zu.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.