温馨提示×

python命令行交互能进行文件加密吗

小樊
81
2024-12-11 10:18:20
栏目: 编程语言

是的,Python 命令行交互可以进行文件加密。你可以使用 Python 的内置模块 cryptography 来实现文件加密和解密。以下是一个简单的示例,展示了如何使用 cryptography 模块进行 AES 加密和解密:

首先,确保你已经安装了 cryptography 模块。如果没有安装,可以使用以下命令安装:

pip install cryptography

然后,创建一个名为 encrypt.py 的脚本,并添加以下代码:

from cryptography.fernet import Fernet
import sys

def generate_key():
    return Fernet.generate_key()

def encrypt_file(key, file_name):
    with open(file_name, 'rb') as f:
        data = f.read()

    fernet = Fernet(key)
    encrypted_data = fernet.encrypt(data)

    with open(file_name + '.enc', 'wb') as f:
        f.write(encrypted_data)

def decrypt_file(key, file_name):
    with open(file_name, 'rb') as f:
        encrypted_data = f.read()

    fernet = Fernet(key)
    decrypted_data = fernet.decrypt(encrypted_data)

    with open(file_name[:-4], 'wb') as f:
        f.write(decrypted_data)

if __name__ == '__main__':
    if len(sys.argv) != 4:
        print("Usage: python encrypt.py <encrypt|decrypt> <key> <file>")
        sys.exit(1)

    action, key, file_name = sys.argv[1], sys.argv[2], sys.argv[3]

    if action == 'encrypt':
        encrypt_file(key, file_name)
    elif action == 'decrypt':
        decrypt_file(key, file_name)
    else:
        print("Invalid action. Use 'encrypt' or 'decrypt'.")
        sys.exit(1)

现在,你可以在命令行中使用以下命令进行加密和解密操作:

python encrypt.py encrypt <key> <file>
python encrypt.py decrypt <key> <file>

其中,<key> 是一个用于加密和解密的密钥,<file> 是要加密或解密的文件名。请注意,密钥应该保密,不要将其泄露给他人。

0