Python給文件夾加解密的實現(xiàn)
隨著互聯(lián)網(wǎng)和科技的不斷發(fā)展,數(shù)據(jù)泄露已經(jīng)成為一個嚴(yán)重的問題。為了保護用戶和公司的隱私,給文件夾加密已經(jīng)成為一個必要的步驟。本文將介紹如何利用Python給文件夾加密。
一、生成密鑰
加密過程需要密鑰來進行加密和解密??梢允褂肞ython內(nèi)置的hashlib模塊來生成一個隨機的密鑰。
import hashlib key = hashlib.sha256(b'mysecretkey').digest()
這里使用sha256算法生成一個256位的密鑰。用戶可以自己設(shè)置密鑰,也可以使用random模塊生成隨機的密鑰。
二、加密文件夾
在有了密鑰之后,就可以對文件夾進行加密。加密的過程可以通過遞歸的方式對所有的文件進行加密。由于文件加密需要時間,因此需要使用tqdm模塊來顯示進度條。加密的過程如下:
import os
from cryptography.fernet import Fernet
from tqdm import tqdm
def encrypt_folder(path, key):
f = Fernet(key)
for root, _, files in os.walk(path):
for file in tqdm(files):
filepath = os.path.join(root, file)
with open(filepath, 'rb+') as f1:
data = f1.read()
encrypted_data = f.encrypt(data)
f1.seek(0)
f1.write(encrypted_data)
f1.truncate()這里使用了cryptography.fernet模塊來進行加密。遞歸遍歷文件夾中的所有文件,對每個文件進行加密并寫回原文件。
三、解密文件夾
如果需要對文件夾進行解密,可以使用下面的代碼:
def decrypt_folder(path, key):
f = Fernet(key)
for root, _, files in os.walk(path):
for file in tqdm(files):
filepath = os.path.join(root, file)
with open(filepath, 'rb+') as f1:
data = f1.read()
decrypted_data = f.decrypt(data)
f1.seek(0)
f1.write(decrypted_data)
f1.truncate()這里使用了和加密同樣的方式遞歸遍歷文件夾中的所有文件,對每個文件進行解密并寫回原文件。
四、完整代碼示例
下面給出完整的代碼示例:
import os
import hashlib
from cryptography.fernet import Fernet
from tqdm import tqdm
def generate_key():
key = hashlib.sha256(b'mysecretkey').digest()
return key
def encrypt_folder(path, key):
f = Fernet(key)
for root, _, files in os.walk(path):
for file in tqdm(files):
filepath = os.path.join(root, file)
with open(filepath, 'rb+') as f1:
data = f1.read()
encrypted_data = f.encrypt(data)
f1.seek(0)
f1.write(encrypted_data)
f1.truncate()
def decrypt_folder(path, key):
f = Fernet(key)
for root, _, files in os.walk(path):
for file in tqdm(files):
filepath = os.path.join(root, file)
with open(filepath, 'rb+') as f1:
data = f1.read()
decrypted_data = f.decrypt(data)
f1.seek(0)
f1.write(decrypted_data)
f1.truncate()
key = generate_key()
encrypt_folder('/path/to/folder', key)
decrypt_folder('/path/to/folder', key)到此這篇關(guān)于Python給文件夾加解密的實現(xiàn)的文章就介紹到這了,更多相關(guān)Python 文件夾加解密內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
- Python實現(xiàn)加解密,編碼解碼和進制轉(zhuǎn)換(最全版)
- python實現(xiàn)AES算法及AES-CFB8加解密源碼
- python des,aes,rsa加解密的實現(xiàn)
- Python 實現(xiàn)RSA加解密文本文件
- python實現(xiàn)凱撒密碼、凱撒加解密算法
- Python實現(xiàn)密鑰密碼(加解密)實例詳解
- 利用python實現(xiàn)凱撒密碼加解密功能
- Python3加密解密庫Crypto的RSA加解密和簽名/驗簽實現(xiàn)方法實例
- Python內(nèi)置方法實現(xiàn)字符串的秘鑰加解密(推薦)
- python實現(xiàn)AES和RSA加解密的方法
- python實現(xiàn)柵欄加解密 支持密鑰加密
- python下讀取公私鑰做加解密實例詳解
相關(guān)文章
淺談numpy中l(wèi)inspace的用法 (等差數(shù)列創(chuàng)建函數(shù))
下面小編就為大家?guī)硪黄獪\談numpy中l(wèi)inspace的用法 (等差數(shù)列創(chuàng)建函數(shù))。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2017-06-06
python中csv文件數(shù)據(jù)顏色設(shè)置方式
這篇文章主要介紹了python中csv文件數(shù)據(jù)顏色設(shè)置方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2024-02-02
Pandas時間序列基礎(chǔ)詳解(轉(zhuǎn)換,索引,切片)
今天小編就為大家分享一篇Pandas時間序列基礎(chǔ)詳解(轉(zhuǎn)換,索引,切片),具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-02-02

