最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Python給文件夾加解密的實(shí)現(xiàn)

 更新時(shí)間:2023年11月15日 11:25:19   作者:很酷的站長(zhǎng)  
數(shù)據(jù)泄露已經(jīng)成為一個(gè)嚴(yán)重的問題,為了保護(hù)用戶和公司的隱私,給文件夾加密已經(jīng)成為一個(gè)必要的步驟,本文主要介紹了Python給文件夾加解密的實(shí)現(xiàn),感興趣的可以了解一下

隨著互聯(lián)網(wǎng)和科技的不斷發(fā)展,數(shù)據(jù)泄露已經(jīng)成為一個(gè)嚴(yán)重的問題。為了保護(hù)用戶和公司的隱私,給文件夾加密已經(jīng)成為一個(gè)必要的步驟。本文將介紹如何利用Python給文件夾加密。

一、生成密鑰

加密過程需要密鑰來(lái)進(jìn)行加密和解密??梢允褂肞ython內(nèi)置的hashlib模塊來(lái)生成一個(gè)隨機(jī)的密鑰。

import hashlib

key = hashlib.sha256(b'mysecretkey').digest()

這里使用sha256算法生成一個(gè)256位的密鑰。用戶可以自己設(shè)置密鑰,也可以使用random模塊生成隨機(jī)的密鑰。

二、加密文件夾

在有了密鑰之后,就可以對(duì)文件夾進(jìn)行加密。加密的過程可以通過遞歸的方式對(duì)所有的文件進(jìn)行加密。由于文件加密需要時(shí)間,因此需要使用tqdm模塊來(lái)顯示進(jìn)度條。加密的過程如下:

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模塊來(lái)進(jìn)行加密。遞歸遍歷文件夾中的所有文件,對(duì)每個(gè)文件進(jìn)行加密并寫回原文件。

三、解密文件夾

如果需要對(duì)文件夾進(jìn)行解密,可以使用下面的代碼:

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()

這里使用了和加密同樣的方式遞歸遍歷文件夾中的所有文件,對(duì)每個(gè)文件進(jìn)行解密并寫回原文件。

四、完整代碼示例

下面給出完整的代碼示例:

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給文件夾加解密的實(shí)現(xiàn)的文章就介紹到這了,更多相關(guān)Python 文件夾加解密內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • pytorch中使用cuda擴(kuò)展的實(shí)現(xiàn)示例

    pytorch中使用cuda擴(kuò)展的實(shí)現(xiàn)示例

    這篇文章主要介紹了pytorch中使用cuda擴(kuò)展的實(shí)現(xiàn)示例,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-02-02
  • python環(huán)形單鏈表的約瑟夫問題詳解

    python環(huán)形單鏈表的約瑟夫問題詳解

    這篇文章主要為大家詳細(xì)介紹了python環(huán)形單鏈表的約瑟夫問題,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2018-09-09
  • python中str、bytes、十六進(jìn)制字符串之間的相互轉(zhuǎn)換方法

    python中str、bytes、十六進(jìn)制字符串之間的相互轉(zhuǎn)換方法

    這篇文章主要介紹了在Python中字符串(str)、字節(jié)序列(bytes)以及十六進(jìn)制字符串之間的轉(zhuǎn)換方法,包括如何使用.encode()、.decode()、bytes.fromhex()和.hex()方法進(jìn)行轉(zhuǎn)換,需要的朋友可以參考下
    2025-03-03
  • python實(shí)發(fā)郵件實(shí)例詳解

    python實(shí)發(fā)郵件實(shí)例詳解

    在本篇文章里小編給大家整理的是關(guān)于python實(shí)發(fā)郵件的相關(guān)知識(shí)點(diǎn)內(nèi)容,有需要的朋友們學(xué)習(xí)下。
    2019-11-11
  • 詳談Python中列表list,元祖tuple和numpy中的array區(qū)別

    詳談Python中列表list,元祖tuple和numpy中的array區(qū)別

    下面小編就為大家分享一篇詳談Python中列表list,元祖tuple和numpy中的array區(qū)別,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來(lái)看看吧
    2018-04-04
  • python游戲?qū)崙?zhàn)項(xiàng)目之俄羅斯方塊的魅力

    python游戲?qū)崙?zhàn)項(xiàng)目之俄羅斯方塊的魅力

    遲早一定會(huì)掛掉的俄羅斯方塊,為什么至今仍是世界游戲之王?它是怎么編寫的?本文將給大家詳細(xì)的介紹,對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值
    2021-09-09
  • python里面單雙下劃線的區(qū)別詳解

    python里面單雙下劃線的區(qū)別詳解

    本文主要介紹了python里面單雙下劃線的區(qū)別詳解,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2023-04-04
  • 使用 Python 實(shí)現(xiàn) RAG從文檔加載到語(yǔ)義檢索全流程

    使用 Python 實(shí)現(xiàn) RAG從文檔加載到語(yǔ)義檢索全流程

    本文帶你從零開始,用Python完整實(shí)現(xiàn)一個(gè)RAG系統(tǒng),涵蓋文檔加載、文本分塊、向量嵌入、語(yǔ)義檢索與生成回答的完整鏈路,感興趣的朋友一起看看吧
    2026-04-04
  • PyTorch一小時(shí)掌握之基本操作篇

    PyTorch一小時(shí)掌握之基本操作篇

    這篇文章主要介紹了PyTorch一小時(shí)掌握之基本操作篇,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2021-09-09
  • 基于Python實(shí)現(xiàn)wifi連接小程序

    基于Python實(shí)現(xiàn)wifi連接小程序

    這篇文章主要為大家詳細(xì)介紹了如何使用Python編程語(yǔ)言編寫一個(gè)簡(jiǎn)單的連接Wi-Fi的程序,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下
    2024-01-01

最新評(píng)論

华安县| 内乡县| 宜城市| 汝州市| 永春县| 英吉沙县| 织金县| 和林格尔县| 巧家县| 湖口县| 北票市| 普格县| 海盐县| 汉沽区| 南漳县| 武宣县| 昌平区| 驻马店市| 秭归县| 南京市| 农安县| 丰城市| 武隆县| 宜宾县| 酒泉市| 山阳县| 仲巴县| 贵南县| 微山县| 张家港市| 邮箱| 阜南县| 铜陵市| 六安市| 佛坪县| 平果县| 句容市| 洛川县| 家居| 南丹县| 顺平县|