2024-06-16 11:55:06 发布
网友
我正在开发一个应用程序,用户上传一个文件,应用程序会自动为他们处理。为了数据安全,我想加密这些文件。这些文件的大小可以从小到大(2MB到30MB以上)不等。 我发现PyCrypto实际上是一个加密/解密包。这些文件经过处理后被读入io.BytesIO(),然后从字节流创建一个文件。我想知道是否可以“加密”字节流,然后创建文件。因此,当我将文件读入io.Bytes()时,我可以对其进行解密并将文件提供给用户
PyCrypto已被放弃,无法在Python 3.8中使用,因此这项工作的最佳候选者是pyca/cryptography,但如果确实需要,可以从以下内容开始:
pyca/cryptography
from io import BytesIO from Crypto import Random from Crypto.Cipher import AES payload = BytesIO(b"SomeData") # Implement PKCS7 padding. block_size = 16 length = payload.getbuffer().nbytes to_pad = block_size - length % block_size payload.seek(length) payload.write((chr(to_pad) * to_pad).encode("utf8")) payload.seek(0) # Setup the cipher. iv = Random.new().read(block_size) cipher = AES.new( "16-CHAR-LENGTH__", # Some secret. mode=AES.MODE_CBC, IV=iv, ) encrypted = cipher.encrypt(payload.read())
PyCrypto已被放弃,无法在Python 3.8中使用,因此这项工作的最佳候选者是
pyca/cryptography
,但如果确实需要,可以从以下内容开始:相关问题 更多 >
编程相关推荐