Cel mai bun răspuns
Există multe opțiuni pentru a cripta un fișier în Python.
Utilizarea bibliotecii PyCrypto: PyCrypto este o colecție de funcții hash sigure și diferiți algoritmi de criptare. Mai întâi instalați PyCrypto pachetul executând această comandă pe CMD
pip install pycrypto
Codul pentru criptarea fișierelor utilizând algoritmul AES este prezentat mai jos
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, "
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))
Utilizarea PyAesCrypt: modul de criptare Python cu trei fișiere care utilizează AES256-CBC pentru a cripta și decripta fișiere
pip install pyAesCrypt
Exemplu de cod prezentat mai jos:
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)
Biblioteca de criptografie Python poate fi, de asemenea, o opțiune bună pentru criptare
Răspuns
Cel mai simplu mod de a cripta fișiere cu python va fi să folosiți criptografie .
1. Instalare:
pip/pip3 install cryptography
2.Cod:
Vom avea un fișier video numit „ myvideo.mp4 ” pentru a-l cripta și a programului principal „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()
Încercați întotdeauna să utilizați fișierul cheie corect pentru corect fișier de date, fie că eșuează. Este nevoie de aproximativ 30 de minute pentru a scrie acest program. Vă rugăm să susțineți răspunsul meu.