用PyCrypto策略加密/解密大文件

2024-06-18 16:09:13 发布

您现在位置:Python中文网/ 问答频道 /正文

我目前正在学习一些有关加密的东西,它的算法和它的工作原理。我在考虑加密大文件的方法,唯一可行的方法似乎是使用对称密钥算法。在

所以我在研究AES,虽然将64k或32k字节块传递给使用密码散列创建的AES对象似乎没问题,但我仍然对最安全的方法感到好奇,因为我一直在读密码术很容易搞砸。在

所以我得到了一个密码短语,我得到了它的SHA256校验和,我在创建加密/解密对象时用它作为密钥。在

其他我找不到答案的事情:我应该用静脉注射吗?如果是这样的话,我必须确保对象在解密时使用与加密时使用的相同的IV…我该怎么做?在

为什么我看到这里有人说你应该填充文件的最后一块,即使字节数可以被16整除?在

最好使用哪种加密模式?在

你能推荐其他资源来学习更多的安全/加密吗?在

提前谢谢你


Tags: 文件对象方法答案算法密码字节密钥
2条回答
  1. 不要使用密码短语的直接哈希,而是使用(或创建)一个KDF
  2. 你肯定是should use IV。您可以将其存储为文件的第一个块。在
  3. 我个人可能会用AES_模式.CTR-请参见这个老问题的Wikipedia for Why?Alex Martelli's answer,以了解如何实现?

看看你的一些问题。在

大多数情况下使用CTR模式或CBC模式。如果需要内置身份验证,请使用Galois Counter Mode(GCM)。否则,使用不同的密钥使用单独的HMAC进行身份验证。在

所有三种建议的模式都需要一个IV,不过在CTR模式下,它有时被称为nonce。它可以以明文形式发送,通常是在密文的前面。在

应始终使用填充物。选择PKCS7或PKCS5,它们实际上是相同的。在

为了学习密码学,我建议Ferguson和Schneier的Practical Cryptography。我知道有一个更新版本,叫做'Cryptography Engineering',我还没有读过。在

相关问题 更多 >